VBS进程判断代码

2023-12-01 0 566

vbs核心代码

Option Explicit
Dim objWMIService,colProcessList,strComputer
strComputer = \”.\”
Set objWMIService = GetObject(\”winmgmts:{impersonationLevel=impersonate}!\\\\\” & strComputer & \”\\root\\cimv2\”)
Set colProcessList = objWMIService.ExecQuery(\”Select * from Win32_Process Where Name = \’excel.exe\’\”)
If colProcessList.Count>0 Then
MsgBox \”检测到EXCEL程序运行中,程序退出!\”
WScript.Quit
End If
Set colProcessList = Nothing
Set objWMIService = Nothing
WScript.Quit

当然你可以判断 winrar.exe等等

下面附一个代码,原来中文命名的,悠久资源网已经修改为英文命名并且正常运行了,因为时间问题,需要的朋友可以自行修改精简

\’检测进程
proname = \”qq.exe\”
reName = IsProcess(proname)
If reName = True Then
msgbox \”发现进程\”
ElseIf reName = False Then
msgbox \”没有发现进程\”
End If
\’检测进程 优化后的代码
If IsProcess(\”qq.exe\”) = True Then
msgbox \”发现进程\”
Else
msgbox \”没有发现进程\”
End If
\’检测进程组
proName_all = \”qq.exe|notepad.exe\”
reName = IsProcessEx(proName_all)
If reName = True Then
msgbox \”发现进程\”
ElseIf reName = False Then
msgbox \”没有发现进程\”
End If
\’检测进程组 优化后的代码
If IsProcessEx(\”qq.exe|notepad.exe\”) = True Then
msgbox \”发现进程\”
Else
msgbox \”没有发现进程\”
End If
\’结束进程 前台执行
proname = \”qq.exe\”
Call CloseProcess(proname, 1)
\’结束进程 后台执行
proname = \”qq.exe\”
Call CloseProcess(proname, 0)
\’结束进程组 前台执行
proName_all = \”qq.exe|notepad.exe\”
Call CloseProcessEx(proName_all, 1)
\’结束进程组 后台执行
proName_all = \”qq.exe|notepad.exe\”
Call CloseProcessEx(proName_all, 0)
\’实例应用 结束进程 前台执行 10秒超时
proname = \”qq.exe\”
For i=1 to 10
Call CloseProcess(proname,1)
Delay 1000
reName = IsProcess(proname)
If reName = False Then
Exit For
End If
Next
If reName=True Then
msgbox \”结束进程失败\”
Else
msgbox \”结束进程成功\”
End If
\’实例应用 结束进程 前台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
Do
Call CloseProcess(\”qq.exe\”,1)
Delay 1000
Loop While IsProcess(\”qq.exe\”)=True
msgbox \”结束进程成功\”
\’实例应用 结束进程组 后台执行 10秒超时
proName_all = \”qq.exe|notepad.exe\”
For j=1 to 10
Call CloseProcessEx(proName_all,0)
Delay 1000
reName = IsProcessEx(proName_all)
If reName = False Then
Exit For
End If
Next
If reName=True Then
msgbox \”结束进程失败\”
Else
msgbox \”结束进程成功\”
End If
\’实例应用 结束进程组 后台执行 优化后的代码(直到型循环) 有些进程VBS检测不到 所以先关闭后检测
Do
Call CloseProcessEx( \”qq.exe|notepad.exe\”,0)
Delay 1000
Loop While IsProcessEx( \”qq.exe|notepad.exe\”)=True
msgbox \”结束进程成功\”
\’函数 子程序部分代码
\’检测进程
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进程判断的文章就介绍到这

您可能感兴趣的文章:

  • DOS中判断进程是否存在的方法
  • windows服务器维护经验小结(rsync,serv_u)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 VBS VBS进程判断代码 https://www.u-9.cn/jiaoben/vbscript/9930.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务