好像不難吧?
“專業(yè)、務(wù)實、高效、創(chuàng)新、把客戶的事當(dāng)成自己的事”是我們每一個人一直以來堅持追求的企業(yè)文化。 創(chuàng)新互聯(lián)是您可以信賴的網(wǎng)站建設(shè)服務(wù)商、專業(yè)的互聯(lián)網(wǎng)服務(wù)提供商! 專注于網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計、軟件開發(fā)、設(shè)計服務(wù)業(yè)務(wù)。我們始終堅持以客戶需求為導(dǎo)向,結(jié)合用戶體驗與視覺傳達(dá),提供有針對性的項目解決方案,提供專業(yè)性的建議,創(chuàng)新互聯(lián)建站將不斷地超越自我,追逐市場,引領(lǐng)市場!
我放進(jìn)了Button1的Click事件里。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
On Error GoTo Errmessages '在做系統(tǒng)操作時加排錯標(biāo)簽是個好習(xí)慣
Dim TargetName As String = "ibmdict" '存儲進(jìn)程名為文本型,注:進(jìn)程名不加擴(kuò)展名
Dim TargetKill() As Process = Process.GetProcessesByName(TargetName) '從進(jìn)程名獲取進(jìn)程
Dim TargetPath As String '存儲進(jìn)程路徑為文本型
If TargetKill.Length 1 Then '判斷進(jìn)程名的數(shù)量,如果同名進(jìn)程數(shù)量在2個以上,用For循環(huán)關(guān)閉進(jìn)程。
For i = 0 To TargetKill.Length - 1
TargetPath = TargetKill(i).MainModule.FileName
TargetKill(i).Kill()
Next
ElseIf TargetKill.Length = 0 Then '判斷進(jìn)程名的數(shù)量,沒有發(fā)現(xiàn)進(jìn)程直接彈窗。不需要的,可直接刪掉該If子句
MsgBox("沒有發(fā)現(xiàn)進(jìn)程!")
Exit Sub
ElseIf TargetKill.Length = 1 Then '判斷進(jìn)程名的數(shù)量,如果只有一個,就不用For循環(huán)
TargetKill(0).Kill()
End If
MsgBox("已終止" TargetKill.Length "個進(jìn)程") '彈窗提示已終止多少個進(jìn)程
Errmessages: ‘定義排錯標(biāo)簽
If Err.Description Nothing Then ’判斷有無錯誤,如果有,則 ↓
MsgBox(Err.Description) '當(dāng)出現(xiàn)錯誤時,彈窗提示
End If
End Sub
可根據(jù)需要自行修改,這個備注夠完善了吧?不會的再Hi我。
軟糖來回答羅:通過System.Diagnostics命名空間下的Process類來關(guān)閉程序的進(jìn)程
Dim?進(jìn)程集合?=?Process.GetProcessesByName("進(jìn)程名稱")
For?Each?進(jìn)程?In?進(jìn)程集合
進(jìn)程.Kill()
'進(jìn)程.Close()?'或者使用關(guān)閉
Next
也可以先獲取所有進(jìn)程,再來判斷這些進(jìn)程的名稱ProcessName
Dim?獲取本地所有進(jìn)程?=?Process.GetProcesses()
For?Each?進(jìn)程?In?獲取本地所有進(jìn)程
If?進(jìn)程.ProcessName?=?"explorer.exe"?Then?進(jìn)程.Kill()
Next
只有windows 7等以上版本的操作系統(tǒng)才可以自動消失。其他windows NT內(nèi)核版本,例如:windows 2003,windows xp,windows 2000等老版本,要讓圖標(biāo)托盤消失,必須至少要兩種方法:
1:退出程序時,在代碼里調(diào)用刪除托盤圖標(biāo)的代碼。
2:程序崩潰時或者是手動結(jié)束進(jìn)程后,圖標(biāo)遺留在右下角,只能用鼠標(biāo)移動到上面,它才會消失。
所以,必須要在代碼里面寫上退出托盤的程序,因為很多人當(dāng)然也包括我自己,有時候編寫代碼,只編寫了啟動托盤的代碼,沒有寫退出托盤的代碼,以為程序退出了,托盤圖標(biāo)會自己消失。而事實上不是這樣的,托盤的啟動和退出,必須要自己來顯式的在程序里面實現(xiàn)。啟動托盤實現(xiàn)后,必須要實現(xiàn)退出托盤。
所以建議大家在編寫托盤圖標(biāo)程序時,在退出程序的時候,顯式的調(diào)用刪除托盤圖標(biāo)的代碼就可以了。
假設(shè)進(jìn)程PID在變量runPID中:
Try
Dim deadProcess As Process = Process.GetProcessById(runPID) '獲取該進(jìn)程
deadProcess.Kill() '殺死進(jìn)程
Catch ex As Exception
End Try
詳細(xì)查看了你的問題,完全不需要使用線程sleep的方法。
在這邊,我要給你引入一個概念。就是Form窗體的兩個方法。
Form.Show()和Form.ShowDialog()
第一個Show方法運(yùn)行后,你的主程序還是會進(jìn)行,你的代碼還是會繼續(xù)進(jìn)行下去。此時,窗體還是彈出的。
第二個ShowDialog方法運(yùn)行后,此時,彈出的一個窗體,你不將其關(guān)閉,那么,主程序就會一直等待這個窗體關(guān)閉后,才執(zhí)行后面的代碼。
所以,你只需要使用showdialog這個方法,即可達(dá)到你想要的結(jié)果。
那么,如何才能讓彈出的窗體不改變呢?很簡單
你可以找到窗體的formcloseing事件,在這個事件中,有一個參數(shù):e
這個e有一個屬性,就是e.handle,表示是否處理過這個事件了。
這個時候,如果你不想讓窗體關(guān)閉,你可以寫:
e.handle=true,那么表示已經(jīng)處理過窗體關(guān)閉的事件了。
注:有些情況,可能是:e.cancel=true
在你給textbox設(shè)置text值后直接使用sleep(),因為在使用sleep()的時候,當(dāng)前的主進(jìn)程是被掛起了,也就是說設(shè)置的text屬性后,還來不及在屏幕上顯示lbi的內(nèi)容就執(zhí)行了sleep,所以在執(zhí)行sleep()掛起主進(jìn)程前,你必須讓textbox的內(nèi)容先顯示出來再執(zhí)行sleep,可嘗試使用下DoEvents()將控制權(quán)暫時移交一下,讓系統(tǒng)有時機(jī)來刷新textbox里面的內(nèi)容,讓系統(tǒng)有機(jī)會來刷新textbox里面的內(nèi)容。由于我沒有安裝visual studio的開發(fā)環(huán)境,無法調(diào)試代碼的正確性,但我記得我以前也遇到此類問題,采取的DoEvents()的方式。你可嘗試下。
lbl.Visible = True
Sleep(5000)
lbl.Text = "我是中國人"
lbi.Refresh '刷新一下lbi,具體你可以調(diào)試下,看需要不需要這條
Application.DoEvents() ‘設(shè)置完lbi的text屬性,將操作權(quán)限釋放一下,讓系統(tǒng)有機(jī)會顯示lbi的內(nèi)容。
Sleep(3000) ’待顯示后,再執(zhí)行掛起
lbl.Text = "我愛自己的祖國"
lbi.Refresh ‘同上
Application.DoEvents() ’同上
DoEvents()的功能解釋是:轉(zhuǎn)讓控制權(quán),以便讓操作系統(tǒng)處理其它的事件。
如執(zhí)行一次不行,可嘗試重復(fù)多執(zhí)行幾次,特別在循環(huán)語句中,對于窗口的刷新顯示DoEvents特別有用,但是在循環(huán)體內(nèi)使用了DoEvents后,當(dāng)前進(jìn)程的執(zhí)行效率會有大幅降低,因為移交控制權(quán)必然損失當(dāng)前進(jìn)程的運(yùn)行效率。
網(wǎng)站欄目:vb.net進(jìn)程休息,vb 結(jié)束進(jìn)程
瀏覽路徑:http://jinyejixie.com/article8/hsoeip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、搜索引擎優(yōu)化、App開發(fā)、ChatGPT、網(wǎng)站收錄、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)