标题: [问题求助] 求大神帮忙改一下,VBS循环条件成立退出循环 [打印本页]
作者: ydm566 时间: 2014-12-12 13:22 标题: 求大神帮忙改一下,VBS循环条件成立退出循环
- set WshShell = CreateObject("WScript.Shell")
- WScript.Sleep 1000 ' 延时1秒
- dim wmi,proc,procs,proname,flag,WshShell
-
- proname="QQ.exe" '服务进程的名称
- set wmi=getobject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2")
- set procs=wmi.execquery("select * from win32_process")
- flag=true
- for each proc in procs
- if strcomp(proc.name,proname)=0 then
- flag=false
- exit for
- end if
- next
- set wmi=nothing
- if flag then
- Set WshShell = Wscript.CreateObject("Wscript.Shell")
- WshShell.Run ("D:\QQ\QQ.exe")
- end if
复制代码
求大神帮忙改一下,循环100次检测QQ进程,如果检测次数在100次内QQ进程存在了,就退出速个VBS脚本,如果检测100次还没有QQ进程,就执行D:\QQ\QQ.exe
作者: yu2n 时间: 2014-12-12 14:36
- Const AppName = "QQ.exe" ' 程序名称
- Const AppPath = "D:\QQ\QQ.exe" ' 程序路径,不知道路径的话留空
-
- Main
- Sub Main()
- ' 循环100次
- For i = 1 To 100
- ' 延时 1 秒
- ' WScript.Sleep 1000
- ' 检查QQ是否运行,运行则退出脚本
- If IsRun(AppName, AppPath) > 0 Then WScript.Quit(0)
- Next
- ' 没有QQ运行,则启动QQ
- CreateObject("Wscript.Shell").Run AppPath
- End Sub
-
- ' 检查程序是否运行,返回运行个数
- ' Eg: IsRun("mshta.exe", "c:\test.hta") > 1
- Function IsRun(byVal AppName, byVal AppPath)
- IsRun = 0 : i = 0
- For Each objItem in GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_
- IF LCase(objItem.name) = LCase(AppName) Then
- If AppPath = "" Then IsRun = 1 : Exit Function
- IF Instr( LCase(objItem.CommandLine) , LCase(AppPath) ) Then i = i + 1
- End IF
- Next
- IsRun = i
- End Function
复制代码
作者: ydm566 时间: 2014-12-12 19:05
测试效果不对,和我上面的差不多,并没有循环检测,当没有QQ的时候,没有循环检测到100次,直接就打开QQ了
作者: ydm566 时间: 2014-12-12 19:07
回复 2# yu2n
测试效果不对,和我上面的差不多,并没有循环检测,当没有QQ的时候,没有循环检测到100次,直接就打开QQ了
作者: yu2n 时间: 2014-12-12 22:44
回复 4# ydm566
你是如何判定没有循环100次的?
如果要延时的效果,把第9行代码前的单引号去掉。
如果要体会100次的效果,在第9行后面加1句:复制代码
作者: ydm566 时间: 2014-12-13 16:12
回复 5# yu2n
大神,您测试一下。运行VBS以后,进程里有QQ,并没有退出VBS,还是执行了打开QQ这个操作
作者: yu2n 时间: 2014-12-13 21:31
代码第2行“ 程序路径,不知道路径的话留空”。- Const AppPath = "D:\QQ\QQ.exe" ' 程序路径,不知道路径的话留空
复制代码
' 程序路径,不知道路径的话留空
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |