怎样用VBS代码检测某程序是否在运行,在运行就等待几秒再检测,不在就关机
怎样用VBS代码检测某程序是否在运行,在运行就等待几秒再检测,如此循环,不在就关机。大神们帮帮忙。...
怎样用VBS代码检测某程序是否在运行,在运行就等待几秒再检测,如此循环,不在就关机。大神们帮帮忙。
展开
1个回答
展开全部
你的程序不在运行时,运行此脚本会关机! 注意保存你的当前工作:
Dim WMI, proc, procs,wshell
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set wshell= WScript.CreateObject("WScript.shell")
public function pid(byval val)
pid=0
Set procs = WMI.execquery("select * from win32_process")
For Each proc in procs
If proc.name =val Then
pid=pid+1
exit for
End If
Next
Set procs = nothing
end function
Do
WScript.sleep 2000 '单位是毫秒
if pid("cmd.exe")=0 then 'cmd.exe 是要检测的程序名
wshell.run "shutdown -s -t 10 " '10秒后关机,这命令自己设
wscript.quit
end if
Loop
Dim WMI, proc, procs,wshell
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set wshell= WScript.CreateObject("WScript.shell")
public function pid(byval val)
pid=0
Set procs = WMI.execquery("select * from win32_process")
For Each proc in procs
If proc.name =val Then
pid=pid+1
exit for
End If
Next
Set procs = nothing
end function
Do
WScript.sleep 2000 '单位是毫秒
if pid("cmd.exe")=0 then 'cmd.exe 是要检测的程序名
wshell.run "shutdown -s -t 10 " '10秒后关机,这命令自己设
wscript.quit
end if
Loop
追问
我想在代码的最前面加个定时呢,比如1小时后运行这段循环检查的代买(就是运行你刚给的全部代码,只是时候拖后了)
追答
那就相当于1小时后再启动脚本了,有必要先启动脚本再等1小时吗?实在有这必要你就在循环前让脚本sleep个1小时
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询