您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關vbs如何實現殺死指定進程名稱,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Function KillProc(strProcName) On Error Resume Next Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") Set arrProcesses = objWMIService.ExecQuery( "select * from win32_process where Name ='"&strProcName&"'" ) For Each proccess In arrProcesses proccess.Terminate 0 Next End Function
VBS命令-進程操作代碼(檢測進程, 結束進程)
//檢測進程 進程名 = "qq.exe" 返回值 = IsProcess(進程名) If 返回值 = True Then MessageBox "發現進程" ElseIf 返回值 = False Then MessageBox "沒有發現進程" End If //檢測進程 優化后的代碼 If IsProcess("qq.exe") = True Then MessageBox "發現進程" Else MessageBox "沒有發現進程" End If //檢測進程組 進程組 = "qq.exe|notepad.exe" 返回值 = IsProcessEx(進程組) If 返回值 = True Then MessageBox "發現進程" ElseIf 返回值 = False Then MessageBox "沒有發現進程" End If //檢測進程組 優化后的代碼 If IsProcessEx("qq.exe|notepad.exe") = True Then MessageBox "發現進程" Else MessageBox "沒有發現進程" End If //結束進程 前臺執行 進程名 = "qq.exe" Call CloseProcess(進程名, 1) //結束進程 后臺執行 進程名 = "qq.exe" Call CloseProcess(進程名, 0) //結束進程組 前臺執行 進程組 = "qq.exe|notepad.exe" Call CloseProcessEx(進程組, 1) //結束進程組 后臺執行 進程組 = "qq.exe|notepad.exe" Call CloseProcessEx(進程組, 0) //實例應用 結束進程 前臺執行 10秒超時 進程名 = "qq.exe" For 10 Call CloseProcess(進程名,1) Delay 1000 返回值 = IsProcess(進程名) If 返回值 = False Then Exit For End If Next If 返回值=True Then MessageBox "結束進程失敗" Else MessageBox "結束進程成功" End If //實例應用 結束進程 前臺執行 優化后的代碼(直到型循環) 有些進程VBS檢測不到 所以先關閉后檢測 Do Call CloseProcess("qq.exe",1) Delay 1000 Loop While IsProcess("qq.exe")=True MessageBox "結束進程成功" //實例應用 結束進程組 后臺執行 10秒超時 進程組 = "qq.exe|notepad.exe" For 10 Call CloseProcessEx(進程組,0) Delay 1000 返回值 = IsProcessEx(進程組) If 返回值 = False Then Exit For End If Next If 返回值=True Then MessageBox "結束進程失敗" Else MessageBox "結束進程成功" End If //實例應用 結束進程組 后臺執行 優化后的代碼(直到型循環) 有些進程VBS檢測不到 所以先關閉后檢測 Do Call CloseProcessEx( "qq.exe|notepad.exe",0) Delay 1000 Loop While IsProcessEx( "qq.exe|notepad.exe")=True MessageBox "結束進程成功" //函數 子程序部分代碼 //檢測進程 Function IsProcess(ExeName) Dim WMI, Obj, Objs,i IsProcess = False Set WMI = GetObject("WinMgmts:") Set Objs = WMI.InstancesOf("Win32_Process") For Each Obj In Objs If InStr(UCase(ExeName),UCase(Obj.Description)) <> 0 Then IsProcess = True Exit For End If Next Set Objs = Nothing Set WMI = Nothing End Function //結束進程 Sub CloseProcess(ExeName,RunMode) dim ws Set ws = createobject("Wscript.Shell") ws.run "cmd.exe /C Taskkill /f /im " & ExeName,RunMode Set ws = Nothing End Sub //檢測進程組 Function IsProcessEx(ExeName) Dim WMI, Obj, Objs,ProcessName,i IsProcessEx = False Set WMI = GetObject("WinMgmts:") Set Objs = WMI.InstancesOf("Win32_Process") ProcessName=Split(ExeName,"|") For Each Obj In Objs For i=0 to UBound(ProcessName) If InStr(UCase(ProcessName(i)),UCase(Obj.Description)) <> 0 Then IsProcessEx = True Exit For End If Next Next Set Objs = Nothing Set WMI = Nothing End Function //結束進程組 Sub CloseProcessEx(ExeName,RunMode) dim ws,ProcessName,CmdCode,i ProcessName = Split(ExeName, "|") For i=0 to UBound(ProcessName) CmdCode=CmdCode & " /im " & ProcessName(i) Next Set ws = createobject("Wscript.Shell") ws.run "cmd.exe /C Taskkill /f" & CmdCode,RunMode Set ws = Nothing End Sub
關于“vbs如何實現殺死指定進程名稱”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。