使用VBS打开程序和关闭程序

时间:2024-03-05 19:59:41
下面这个是先执行程序后,然后再结束程序
Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
\'下行是设置延时启动时间 5000等于5秒
WScript.Sleep(5000)
\'下行引号内填写服务器上批处理文件的共享路径
Wsh.Run "\\服务器\fuwu.exe",false,false
\'下行是设置延时清除时间 5000等于5秒
WScript.Sleep(5000)
\'下行清除进程
Wsh.Run "taskkill /f /im fuwu.exe",0
Set Wsh=NoThing
WScript.quit

 

如果只想打开程序可以使用下面的代码:

Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
\'下行是设置延时启动时间 5000等于5秒
WScript.Sleep(5000)
\'下行引号内填写服务器上批处理文件的共享路径
Wsh.Run "\\服务器\fuwu.exe",false,false
Set Wsh=NoThing
WScript.quit

 

如果只想关闭程序可以用下面的代码:

Dim Wsh
Set Wsh = WScript.CreateObject("WScript.Shell")
\'下行是设置延时清除时间 5000等于5秒
WScript.Sleep(5000)
\'下行清除进程
Wsh.Run "taskkill /f /im fuwu.exe",0
Set Wsh=NoThing
WScript.quit

 

将上面的代码保存为 xx.vbs ,双击就可以运行。

 

 

——————————————————————分割线————————————————————————————

 

用vbs打开文件

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