以下是一小段殺死指定進程名字的小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 NextEnd Function
VBS命令-進程操作代碼(檢測進程, 結束進程)
//檢測進程進程名 = "qq.exe"返回值 = IsProcess(進程名)If 返回值 = True ThenMessageBox "發現進程"ElseIf 返回值 = False ThenMessageBox "沒有發現進程"End If//檢測進程 優化后的代碼If IsProcess("qq.exe") = True Then MessageBox "發現進程"Else MessageBox "沒有發現進程"End If//檢測進程組進程組 = "qq.exe|notepad.exe"返回值 = IsProcessEx(進程組)If 返回值 = True ThenMessageBox "發現進程"ElseIf 返回值 = False ThenMessageBox "沒有發現進程"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 10Call CloseProcess(進程名,1)Delay 1000返回值 = IsProcess(進程名)If 返回值 = False ThenExit ForEnd IfNextIf 返回值=True ThenMessageBox "結束進程失敗"ElseMessageBox "結束進程成功"End If//實例應用 結束進程 前臺執行 優化后的代碼(直到型循環) 有些進程VBS檢測不到 所以先關閉后檢測DoCall CloseProcess("qq.exe",1)Delay 1000Loop While IsProcess("qq.exe")=TrueMessageBox "結束進程成功"//實例應用 結束進程組 后臺執行 10秒超時進程組 = "qq.exe|notepad.exe"For 10Call CloseProcessEx(進程組,0)Delay 1000返回值 = IsProcessEx(進程組)If 返回值 = False ThenExit ForEnd IfNextIf 返回值=True ThenMessageBox "結束進程失敗"ElseMessageBox "結束進程成功"End If//實例應用 結束進程組 后臺執行 優化后的代碼(直到型循環) 有些進程VBS檢測不到 所以先關閉后檢測DoCall CloseProcessEx( "qq.exe|notepad.exe",0)Delay 1000Loop While IsProcessEx( "qq.exe|notepad.exe")=TrueMessageBox "結束進程成功"//函數 子程序部分代碼//檢測進程Function IsProcess(ExeName)Dim WMI, Obj, Objs,iIsProcess = FalseSet WMI = GetObject("WinMgmts:")Set Objs = WMI.InstancesOf("Win32_Process")For Each Obj In ObjsIf InStr(UCase(ExeName),UCase(Obj.Description)) <> 0 ThenIsProcess = TrueExit ForEnd IfNextSet Objs = NothingSet WMI = NothingEnd Function//結束進程Sub CloseProcess(ExeName,RunMode)dim wsSet ws = createobject("Wscript.Shell")ws.run "cmd.exe /C Taskkill /f /im " & ExeName,RunModeSet ws = NothingEnd Sub//檢測進程組Function IsProcessEx(ExeName)Dim WMI, Obj, Objs,ProcessName,iIsProcessEx = FalseSet WMI = GetObject("WinMgmts:")Set Objs = WMI.InstancesOf("Win32_Process")ProcessName=Split(ExeName,"|")For Each Obj In ObjsFor i=0 to UBound(ProcessName)If InStr(UCase(ProcessName(i)),UCase(Obj.Description)) <> 0 ThenIsProcessEx = TrueExit ForEnd IfNextNextSet Objs = NothingSet WMI = NothingEnd Function//結束進程組Sub CloseProcessEx(ExeName,RunMode)dim ws,ProcessName,CmdCode,iProcessName = Split(ExeName, "|")For i=0 to UBound(ProcessName)CmdCode=CmdCode & " /im " & ProcessName(i)NextSet ws = createobject("Wscript.Shell")ws.run "cmd.exe /C Taskkill /f" & CmdCode,RunModeSet ws = NothingEnd Sub
新聞熱點
疑難解答