用VBS调用程序并对程序的运行情况进行监控的两个代码

所属分类: 脚本专栏 / vbs 阅读数: 1737
收藏 0 赞 0 分享
有同时要用一个CAE软件调用外部程序,但是,通过这个CAE软件调用外部程序以后,因为这个外部程序有参数,调用方法写在Bat文件里的,由CAE软件来调用这个Bat,所以,CAE软件没办法对调用的程序进行监控,调用的程序还在运行当中,准备工作还没完成,就到了下一流程,所以,造成流程出错,我写了两个VBS代码,通过它来调用就解决了这个问题!两个小程序分别是按不同的方式来监控的!

   两个程序的调用方式不一样,一个是对系统进程进行监控,一个是对程序生成的文件特征进行监控!

第一个:

‘该程序用来配合SimCode调用其他程序,并对程序的运行情况做监控,!
‘监控方法是:查找程序的Log文件,如果有结束标志,说明程序已经执行完毕!
Set WshShell=Wscript.CreateObject(”Wscript.Shell”)
WshShell.Run(”notepad.exe c:\kw.txt”)'调用的程序
wscript.sleep 2000′等待2秒钟
Dim fso,ts,i
Do While Not i=1′当i=1不成立时,一直循环!
 set fso=Wscript.CreateObject(”Scripting.FileSystemObject”)
 Set ts=fso.opentextfile(”c:\kw.txt”)'打开调用的程序日生的日志文件
 Do While Not ts.AtEndOfStream'当没有到文件尾时循环
  data=ucase(trim(ts.readline))'读取日志文件中的一行
  If instr(data,”OK”) Then'查找上面读取到的内容是否存在程序运行完的标志!此例中标志为”OK”
  i=1′当得到程序运行完成的标志时,传递一个值给Do循环,使其结束循环,不再对Log文件监控
  Exit Do
  End If
 loop
Set ts = nothing
Set fso = nothing'关闭创建的对象
wscript.sleep 2000′等待2秒后,进行下一轮对Log文件的监控
loop
wscript.echo “OK!”‘给用户一个反馈,调用的程序执行完毕!真实使用时,应该不要这一行!
第二个:

 

‘该程序用来配合SimCode调用其他程序,并对程序的运行情况做监控,!
‘监控方法是:对系统进程的监控
Set WshShell = Wscript.CreateObject(”Wscript.Shell”)
allApp=”c:\windows\system32\notepad.exe”  ‘写下要调用的程序的完整路径。
AppName=”notepad.exe”  ‘写下调用的程序的名称.
WshShell.Run (allApp) ‘启动调用的程序

dim AppPath
for each ps in getobject(”winmgmts:\\.\root\cimv2:win32_process”).instances_ ‘列出系统中所有正在运行的程序
if lcase(ps.name)=AppName then'检测程序在进程中是否存在
AppPath=ps.commandline'提取程序的命令行
end if
next

do'循环检测
myqqin=chkuin(App)'检测上面得到命令行是否在进程中存在!
if not myqqin then'如果没有运行则,告诉用户,并且结束监控!
msgbox “调用的程序已经退出了!”‘实际使用中,请取掉这一行!
Exit do
else
wscript.sleep 3000′等待5秒
end if
loop'返回继续检测

function chkuin(App)
for each ps in getobject(”winmgmts:\\.\root\cimv2:win32_process”).instances_
if lcase(ps.name)=AppName then
AppPatht1=ps.commandline
if AppPatht1=AppPath then chkuin=true end if
end if
next
end function

更多精彩内容其他人还在看

vbscript禁用 启用fso的方法

启用:regsvr32 scrrun.dll 禁用:regsvr32 /u scrrun.dll
收藏 0 赞 0 分享

getSQLinfo.vbs 获得SQL数据/日志空间使用情况的脚本

这个脚本可以获取SQL数据/日志的空间使用情况方便及时了解sql使用空间情况
收藏 0 赞 0 分享

高手必看的vbs的至尊境界

vbs高手总结出来的,看来我们真忽略了他的真正强大的地方
收藏 0 赞 0 分享

vbs 获取radmin注册表中的信息

用这个脚本真的很方便,轻松的获取radmin注册表中的信息 ,想想以前我们都是用cmd下导出注册表信息
收藏 0 赞 0 分享

vbs解答一道初中数学题i,x,y

vbs解答 一道初中数学题 i+100=x^2 i+168=y^2 求 i,x,y
收藏 0 赞 0 分享

vbs之自动安装驱动程序

目前各类万能驱动程序包在网络上屡见发布,在使用这些程序包的同时,我们不仅会问:为什么这些程序包中的驱动程序可以在安装新硬件之后自动安装呢?
收藏 0 赞 0 分享

vbs Windows系统改变或修改网卡的MAC地址的脚本与软件

这个文件比程序本身还大,感觉不爽,于是本人的VBS版MAC修改代码便诞生了,在使用过程中如果出现不能上网的情况得返回一下网卡驱动(有些机器比较特别)
收藏 0 赞 0 分享

让IIS建立的站点默认是.net 2.0的,而不是.net 1.1的代码

让IIS建立的站点默认是.net 2.0的,而不是.net 1.1的,没有使用WMI,所以在操作前先得停止IIS相关服务
收藏 0 赞 0 分享

VBS利用SendKeys输入中文字符的方法

Author:Trajon.BWL今天在网上随便闲逛,逛到一个帖子,这位迷茫的朋友想知道该怎么使用SendKeys的vbs方法来输入中文字符
收藏 0 赞 0 分享

vbs加administrator用户的代码

使用ADSI的Winnt对象,Windows2000后面的系统都属于NT系列
收藏 0 赞 0 分享
查看更多