set ws=createobject("wscript.shell")
ws.run"打开文件所使用的程序+空格+程序路径",x,ture
Run方法有三个参数:
第一个参数:是你要执行的程序的路径,
第二个参数:是窗口的形式,0后台运行;1正常运行;2最小化;3最大化;缺省的话表示正常运行
第三个参数:是表示这个脚本是等待还是继续执行,如果设为了True,脚本就会等待调用的程序退出后再向后执行。
第二个参数可取值为下面为可选值:
0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。
dim wsh
set wsh=wscript.createobject("wscript.shell")
wsh.run "notepad.exe c:\test.vbs",1,ture '指定文件打开程序
wsh.run "c:\test.doc",1,ture '使用系统默认程序打开文件
set wsh=nothing
如果你希望使用记事本打开程序,而不是直接运行,那么就指定文件的打开程序。
例1:打开记事本和IE浏览器
Set ws = CreateObject("WScript.Shell")
ws.Run "notepad",,True
ws.Run "iexplore"
例2:隐藏BAT执行窗口
Set ws = CreateObject("WScript.Shell")
ws.Run "x.bat",0
例3:运行cmd命令,执行netstat并保存执行结果到x.txt
Set ws = CreateObject("WScript.Shell")
ws.Run "cmd /c netstat -an>>x.txt",0
例4:结束IE的进程
Set ws = CreateObject("WScript.Shell")
ws.Run "taskkill /f /im iexplore.exe",0
============================================================
补充:
这里有个类似的方法就是Exec 方法,具体看下面的例子
例1:运行文件
Set ws = CreateObject("WScript.Shell")
ws.Exec "notepad c:\x.txt" '对于Exec应指明程序,此notepad是必须的
例2:运行程序>获取进程PID值>强行结束进程(没有Run+taskkill强:如在记事本未保存的情况下结束进程,Exec会出错,而Run不会)>判断进程是否在运行(这个功能不错)
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("notepad")
MsgBox e.ProcessId
e.Terminate
WSH.Sleep 1000
MsgBox e.Status '0为运行,1为结束
例3:直接获取dos命令输出,dos窗口会闪一下,Exec没有窗口控制功能
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("ipconfig")
MsgBox e.Stdout.ReadAll
例4:
Set ws = CreateObject("WScript.Shell")
Set e = ws.Exec("cmd /c echo Hi")
MsgBox e.Stdout.ReadAll
出处:http://wenwen.soso.com/z/q390167953.htm
出处:http://foxroom.diandian.com/post/2011-05-21/947745