在DOS下,
system()只是做一个调用其他程序的工作,只要调用成功就返回0,不成功就坦誉返回-1。
它不能得到被调用的程序的执行结果。
要得到其他程序的执行的结果,要用spawn***()这个家族的函数。
如果在linux下面
如果你想得到那个返回值可以调用WEXITSTATUS(status),其中status是system函数的返回值。
如果你非常想获取他的返回值,就使用popen函数。它返回一个FILE*,就笑尘好像读写文件一样 *** 作它就是了,不需要另外写文件读文件。
下面代码复制到记事本,保存为后缀名为VBS的脚本文件,然后运行。当察绝notepad.exe(记事本)运行时,calc.exe(计算器)就运行。(你改为你自己的程序A和程序B就败伏姿行了。但是现厅裤在还有bug,如果notepad在运行,calc就算被关了也还是会运行,稍后再帮你修改一下)
checkProcess = "notepad.exe" '监控的程序
startProcess = "calc.exe" '要运行的程序
startProcessPath = "%SystemRoot%\system32\calc.exe" '要运行的程序的路径
set os = Wscript.CreateObject("Wscript.shell")
do
processOne = false
processTwo = false
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2:win32_process").instances_
for each process in objWMIService
if process.name = checkProcess then processOne = True
if process.name = startProcess then processTwo = True
next
if processOne = True and processTwo = false then
os.run startProcessPath
end if
wscript.sleep 500
loop
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)