杀死指定进程名称的小VBS
以下是一小段杀死指定进程名字的小vbs,希望对大家有帮助。
FunctionKillProc(strProcName) OnErrorResumeNext SetobjWMIService=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") SetarrProcesses=objWMIService.ExecQuery("select*fromwin32_processwhereName='"&strProcName&"'") ForEachproccessInarrProcesses proccess.Terminate0 Next EndFunction
VBS命令-进程操作代码(检测进程,结束进程)
//检测进程 进程名="qq.exe" 返回值=IsProcess(进程名) If返回值=TrueThen MessageBox"发现进程" ElseIf返回值=FalseThen MessageBox"没有发现进程" EndIf //检测进程优化后的代码 IfIsProcess("qq.exe")=TrueThen MessageBox"发现进程" Else MessageBox"没有发现进程" EndIf //检测进程组 进程组="qq.exe|notepad.exe" 返回值=IsProcessEx(进程组) If返回值=TrueThen MessageBox"发现进程" ElseIf返回值=FalseThen MessageBox"没有发现进程" EndIf //检测进程组优化后的代码 IfIsProcessEx("qq.exe|notepad.exe")=TrueThen MessageBox"发现进程" Else MessageBox"没有发现进程" EndIf //结束进程前台执行 进程名="qq.exe" CallCloseProcess(进程名,1) //结束进程后台执行 进程名="qq.exe" CallCloseProcess(进程名,0) //结束进程组前台执行 进程组="qq.exe|notepad.exe" CallCloseProcessEx(进程组,1) //结束进程组后台执行 进程组="qq.exe|notepad.exe" CallCloseProcessEx(进程组,0) //实例应用结束进程前台执行10秒超时 进程名="qq.exe" For10 CallCloseProcess(进程名,1) Delay1000 返回值=IsProcess(进程名) If返回值=FalseThen ExitFor EndIf Next If返回值=TrueThen MessageBox"结束进程失败" Else MessageBox"结束进程成功" EndIf //实例应用结束进程前台执行优化后的代码(直到型循环)有些进程VBS检测不到所以先关闭后检测 Do CallCloseProcess("qq.exe",1) Delay1000 LoopWhileIsProcess("qq.exe")=True MessageBox"结束进程成功" //实例应用结束进程组后台执行10秒超时 进程组="qq.exe|notepad.exe" For10 CallCloseProcessEx(进程组,0) Delay1000 返回值=IsProcessEx(进程组) If返回值=FalseThen ExitFor EndIf Next If返回值=TrueThen MessageBox"结束进程失败" Else MessageBox"结束进程成功" EndIf //实例应用结束进程组后台执行优化后的代码(直到型循环)有些进程VBS检测不到所以先关闭后检测 Do CallCloseProcessEx("qq.exe|notepad.exe",0) Delay1000 LoopWhileIsProcessEx("qq.exe|notepad.exe")=True MessageBox"结束进程成功" //函数子程序部分代码 //检测进程 FunctionIsProcess(ExeName) DimWMI,Obj,Objs,i IsProcess=False SetWMI=GetObject("WinMgmts:") SetObjs=WMI.InstancesOf("Win32_Process") ForEachObjInObjs IfInStr(UCase(ExeName),UCase(Obj.Description))<>0Then IsProcess=True ExitFor EndIf Next SetObjs=Nothing SetWMI=Nothing EndFunction //结束进程 SubCloseProcess(ExeName,RunMode) dimws Setws=createobject("Wscript.Shell") ws.run"cmd.exe/CTaskkill/f/im"&ExeName,RunMode Setws=Nothing EndSub //检测进程组 FunctionIsProcessEx(ExeName) DimWMI,Obj,Objs,ProcessName,i IsProcessEx=False SetWMI=GetObject("WinMgmts:") SetObjs=WMI.InstancesOf("Win32_Process") ProcessName=Split(ExeName,"|") ForEachObjInObjs Fori=0toUBound(ProcessName) IfInStr(UCase(ProcessName(i)),UCase(Obj.Description))<>0Then IsProcessEx=True ExitFor EndIf Next Next SetObjs=Nothing SetWMI=Nothing EndFunction //结束进程组 SubCloseProcessEx(ExeName,RunMode) dimws,ProcessName,CmdCode,i ProcessName=Split(ExeName,"|") Fori=0toUBound(ProcessName) CmdCode=CmdCode&"/im"&ProcessName(i) Next Setws=createobject("Wscript.Shell") ws.run"cmd.exe/CTaskkill/f"&CmdCode,RunMode Setws=Nothing EndSub