杀死指定进程名称的小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