使用vbs如何判断一个程序是否运行,如果没有运行则运行此文件,如果已经运行则自动关闭vbs?

使用vbs如何判断一个程序是否运行,如果没有运行则运行此文件,如果已经运行则自动关闭vbs?,第1张

不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.vbs,编码选ANSI

rem 如果指定exe进程没有运行/不存在,则重新打开/运行/执行该exe程序

exefile="D:\xxx\yyy.exe"

Set fso=CreateObject("Scripting.Filesystemobject")

Set ws=CreateObject("WScript.Shell")

msg="Any question +"&Chr(87) &Chr(88) &"/" &Chr(81) &Chr(81) &CStr(&H53b7e0b4)

If not fso.FileExists(exefile) Then

msgbox """" &exefile &""" 未找到" &vbCrLf &msg,,"Message"

WSH.Quit

End If

Set file=fso.GetFile(exefile)

Set wmi=GetObject("winmgmts://./root/CIMV2")

Set query=wmi.ExecQuery(StrReverse("=emaN erehw ssecorP_23niW morf * tceles") &"'" &file.Name &"'")

f=False

For Each q in query

If InStr(1,q.ExecutablePath,exefile,1) >0 Then

f=True

End If

Next

If f Then

msgbox "在运行" &vbCrLf &msg,,"Message"

Else

ws.Run """" &exefile &"""",1,False

msgbox "未运行" &vbCrLf &msg,,"Message"

End If

WSH.Quit

set ws=createobject("wscript.shell")

wscript.sleep 3000 rem 暂停3000毫秒

ws.run "cmd.exe /c taskkill /f /im notepad.exe /t",0 rem 关闭记事本.

关闭程序得知道程序的进程名,在任务管理器里面.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7934507.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存