如何利用Vbs 运行外部程序

如何利用Vbs 运行外部程序,第1张

dim wshshell

set wshshell = createobject("wscript.shell")

wshshell.exec "程序路径"

A脚本

set ws=CreateObject("WScript.Shell")

msgbox ws.CurrentDirectory '当前工作文件夹

ws.Run """C:\Program Files\Internet Explorer\123.vbs"""

B脚本

WScript.echo Left(WScript.ScriptFullName,Len(WScript.ScriptFullName)-Len(WScript.ScriptName))

wscript.sleep(5000)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

WScript.echo WScript.ScriptFullName '返回当前运行脚本的完整路径名。

WScript.echo WScript.ScriptName'返回当前运行脚本的文件名。

WScript.echo WScript.Path '返回主可执行文件路径名称。

WScript.echo WScript.FullName '返回主可执行文件名称

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

目前只有这一个算是可行的了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存