杀死指定进程名称的小VBS

以下是一小段杀死指定进程名字的小vbs,希望对大家有帮助。
?
1 2 3 4 5 6 7 8 | 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命令-进程操作代码(检测进程, 结束进程)
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | //检测进程 进程名 = "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 |


相关文章:
相关推荐:




