1、需要建立一个监控程序监控某个应用软件(第三方)是否运行,如果为运行,就启动。
2、根据要求写VBS程序,可以实现,测试了没有问题。VBS是基于VisualBasic的脚本语言。
set WshShell = WScript.CreateObject("WScript.Shell")WshShell.AppActivate "Calculator"
AppActivate 方法返回的布尔值表示过程调用是否成功。例如,可用下列方法判断:
if (WshShell.AppActivate "Calculator") then
msgbox "Calculator running"
else
msgbox "Calculator not running"
end if
根据调用的方法、函数的返回值作下一步的 *** 作。具体的参考可看“Script56.CHM”。
****************************************
对不起,疏忽了,我再次查帮助:
1、前面的例子漏了一句:
WshShell.Run "calc"
AppActivate 方法返回的布尔值表示过程调用是否成功。该方法将焦点转移到命名应用程序或窗口中。
------------------------------------------
此方法并不能监视启动的程序是否还在运行。
并且我也不知道为何在脚本运行与帮助中所说的不一致。但我试了几种方法,脚本大多不能监控所调用的外部程序的状态。
2、脚本中用Run方法调用外部程序,可以等待程序执行完成,并查看其返回值:
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
bWaitOnReturn :
可选。布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程序。如果设为 true,则在执行完程序后才执行脚本,Run 方法返回由程序返回的任何错误代码。如果设为 false(默认值),则 Run 方法将自动在启动程序后立即返回 0(不是错误代码)。
--------------------------------------------
例子:
Set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.Run("calc", 1, true)
WScript.Sleep 100
if Return<>0 Then '程序出错
WshShell.Popup "Calculator running error,"&vbcrlf&_
" Return value is: "&Return,4
Else '正常退出
WshShell.Popup "Calculator stop running,"&vbcrlf&_
" Return value is: "&Return,4
End If
set WshShell =Nothing
目前只有这一个算是可行的了。
do
Set ws =CreateObject("wscript.shell")
Set A =ws.exec("tasklist").stdout
b =A.readall
If InStr(1,b,"QQ.exe")=0 Then '把"QQ.exe改成想要检测的进程名"
Else
wscript.createobject("wscript.shell").run "这里填写bat的位置"
wsh.quit
End If
wsh.sleep 2000 ' 这里是等几秒检测一次 可以自行修改 1秒等于1000
loop
自测好用 使用没问题的话记得采纳哦
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)