如何利⽤Vbs运⾏外部程序(Wscript.Shell)?
如何利⽤Vbs运⾏外部程序("Wscript.Shell") ?
━━━━━━━━━━━━━━━━━━━━━━━━━
  Vbs只提供了编程的⼀个基本框架,⽤户可以使⽤Vbs来定义变量、过程和函数,vbs也提
供了⼀些内部函数和对象,但是Vbs没有提供任何命令来访问Windows系统内部的部件,但是值
得庆幸的是,Vbs虽然不能⾃⼰完成这些任务,但是它提供了⼀条极为⽅便、功能也相当强的命令——CreateObject,这条命令可以访问windows系统内安装的所有com对象,并且可以调⽤这
些部件中存放的命令。
好了,我们⾛⼊正题,从最简单的——只启动⼀个程序开始。
WSH也就是⽤来解析Vbs的宿主,本⾝包含了⼏个个常⽤对象:
1、Scripting.FileSystemObject  — >  提供⼀整套⽂件系统操作函数
2、Scripting.Dictionary  — >  ⽤来返回存放键值对的字典对象
vbs小程序代码大全3、Wscript.Shell  — >  提供⼀套读取系统信息的函数,如读写注册表、查指定⽂件的路径、
读取DOS环境变量,读取链接中的设置
4、Wscript.NetWork  — > 提供⽹络连接和远程打印机管理的函数。(其中,所有Scripting对象
都存放在SCRRUN.DLL⽂件中,所有的Wscript对象都存放在⽂件中。)
现在我们需要的是第三个对象,好了,让我们先连接⼀下对象看看,在记事本的编辑窗⼝中输
⼊:
Set Shell = CreateObject(“Wscript.Shell”)
Shell.Run “notepad”
保存执⾏。那么看到了⼀个什么样的结果呢?在桌⾯上⼜打开了⼀个记事本。
说明之⼀:Set是Vbs指令,凡是将⼀对象引⽤赋给变量,就需要使⽤set关键字。那么什么是对
象引⽤呢?凡是字符串、数值、布尔值之外的变量都是对象引⽤。Objshell是变量名,可以随意
修改。
说明之⼆:反是正确引⽤的对象,其本⾝内置有函数和变量,其引⽤⽅法为在变量后加“. ”,后
紧跟其实现功能的函数就可以了。
Objshell.run的意思就是调⽤Wscript.shell中的运⾏外部程序的函数——run,notepad是记事本
程序的⽂件名。当然你也可以改成“calc”,这是计算器的⽂件名,winword是word的⽂件名,等
等吧,所有可执⾏⽂件的⽂件名都可以。但是需要注意的是,如果你要执⾏的可执⾏⽂件存放
的地⽅不是程序安装的常⽤路径,⼀般情况下,需要提供合法的路径名,但是run在运⾏解析
时,遇到空格会停⽌,解决的⽅法是使⽤双引号,例如:在我的机器上运⾏qq,代码为:objshell.run " " "C:/Program Files/ " ""  ‘注:三个引号
好,我们再进⼀步,启动两个程序会如何呢?
输⼊如下代码:
Set objShell = CreateObject(“Wscript.Shell”)
objShell.Run “notepad”
objShell.Run “calc”
执⾏会如何呢?两个程序基本上同时启动了。如果我们需要先启动notepad再启动calc将如何
呢?很简单在需要顺序执⾏的代码后加 , , True参数就可以了。
好了输⼊代码:
Set objShell = CreateObject(“Wscript.Shell”)
objShell.Run “notepad” ,,True
objShell.Run “calc”
看看执⾏的结果怎么样吧!
总结:run函数有三个参数,第⼀个参数是你要执⾏的程序的路径,第⼆个程序是窗⼝的形式,0是在后台运⾏;1表⽰正常运⾏;2表⽰激活程序并且显⽰为最⼩化;3表⽰激活程序并且显⽰为最⼤化;⼀共有10个这样的参数我只列出了4个最常⽤的。
第三个参数是表⽰这个脚本是等待还是继续执⾏,如果设为了true,脚本就会等待调⽤的程序退出后再向后执⾏。
其实,run做为函数,前⾯还有⼀个接受返回值的变量,⼀般来说如果返回为0,表⽰成功执⾏,如果不为0,则这个返回值就是错误代码,可以通过这个代码出相应的错误。
━━━━━━━━━━━━━━━━━━━━━━━━━

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。