WshShell.Run方法说明

本文详细介绍了VBS脚本中的WshShell.Run方法,包括其参数说明、返回值及使用示例。通过Run方法可以在VBS脚本中启动外部程序,并控制程序窗口的显示方式以及脚本是否等待程序结束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[VBS]WshShell.Run方法说明

Run方法说明:

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 参数
object
WshShell 对象。
strCommand
表示要运行的命令行的字符串值。必须包括要传递到可执行文件的所有参数。
intWindowStyle
可选。表示程序窗口外观的整数值。请注意,并非所有程序都使用此信息。
bWaitOnReturn
可选。布尔值,表示在继续执行脚本中的下一条语句之前,脚本是否等待执行完程序。如果设为 true,则在执行完程序后才执行脚本,Run 方法返回由程序返回的任何错误代码。如果设为 false(默认值),则 Run 方法将自动在启动程序后立即返回 0(不是错误代码)。
说明
Run 方法返回一个整数。Run 方法启动在新 Windows 进程中运行的程序。可以让脚本等到程序执行完后再继续执行。这允许您同步运行脚本和程序。strCommand 参数内的环境变量自动扩展。如果某个文件类型已正确注册到某个程序中,则对该类型的文件调用 Run 方法时将执行该程序。例如,如果您的计算机系统中装有 Word,则对 *.doc 文件调用 Run 方法时将启动 Word 并加载该文档。下表列出了 intWindowStyle 的可用设置。

intWindowStyle 说明
0 隐藏一个窗口并激活另一个窗口。
1 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。第一次显示该窗口时,应用程序应指定此标志。
2 激活窗口并将其显示为最小化窗口。
3 激活窗口并将其显示为最大化窗口。
4 按最近的窗口大小和位置显示窗口。活动窗口保持活动状态。
5 激活窗口并按当前的大小和位置显示它。
6 最小化指定的窗口,并按照 Z 顺序激活下一个顶部窗口。
7 将窗口显示为最小化窗口。活动窗口保持活动状态。
8 将窗口显示为当前状态。活动窗口保持活动状态。
9 激活并显示窗口。如果窗口处于最小化或最大化状态,则系统将其还原到原始大小和位置。还原最小化窗口时,应用程序应指定此标志。
10 根据启动应用程序的程序状态来设置显示状态。

关于wshShell对象的详细资料请参阅MSDN

示例 1
下面的 vbscript 代码用记事本打开当前运行脚本的副本。

set wshshell = wscript.createobject("wscript.shell")
wshshell.run "%windir%/notepad " & wscript.scriptfullname
下面的 vbscript 代码与上述代码完成的操作相同,不同之处在于,它指定窗口类型,等待用户关闭记事本,关闭记事本时保存从记事本返回的错误代码。

set wshshell = wscript.createobject("wscript.shell")
return = wshshell.run("notepad " & wscript.scriptfullname, 1, true)
示例 2
下面的 vbscript 代码打开一个命令窗口,将路径改为 c:/,并执行 dir 命令。

dim oshell
set oshell = wscript.createobject ("wscript.shell")
oshell.run "cmd /k cd c:/ & dir"
set oshell = nothing

示例3
var wsh = new ActiveXObject("WScript.Shell");
wsh.Run ("%WINDIR%//notepad.exe c://docs//readme.txt");
Run方法中传入正确的命令行即可以执行相应命令


[From]
http://bbs.huistd.com/detail.php?pagenum=0&id=1509
http://ithomecn.com/soft/p273/A27333569.shtml

http://www.trucy.org/blog/sheryl/archives/2007/12/vbswshshellrune.html

### 回答1: '注释:本脚本用于定时关机Option ExplicitDim strTime, strType, intResult'设置关机时间 strTime = InputBox("请输入关机时间(小时):")'设置关机类型 strType = InputBox("请输入关机类型(1.关机;2.重启;3.注销;4.休眠;5.关闭显示器):")'设置关机命令 intResult = MsgBox("您要在" & strTime &"小时后" & strType & "吗?", vbYesNo + vbQuestion, "定时关机")If intResult = vbYes Then '执行关机命令 Select Case strType Case 1 '关机 Wscript.Quit(2) Case 2 '重启 Wscript.Quit(3) Case 3 '注销 Wscript.Quit(1) Case 4 '休眠 Wscript.Quit(4) Case 5 '关闭显示器 Wscript.Quit(5) End Select End If'设置延时时间 WScript.Sleep 1000 * 60 * 60 * strTime'再次执行关机命令 Select Case strType Case 1 '关机 Wscript.Quit(2) Case 2 '重启 Wscript.Quit(3) Case 3 '注销 Wscript.Quit(1) Case 4 '休眠 Wscript.Quit(4) Case 5 '关闭显示器 Wscript.Quit(5) End Select答:VBS脚本可以用来写一个多功能定时关机的功能,包括设置关机时间、关机类型,以及提供8个关机选项,并且要求带有注释。 ### 回答2: 这是一个用VBS编写的多功能定时关机脚本,包含了8个选项,并且每个选项都有注释说明其功能。 ```vbscript ' VBS多功能定时关机脚本 Option Explicit Dim objShell, intChoice ' 创建WScript Shell对象 Set objShell = CreateObject("WScript.Shell") ' 显示菜单选项 intChoice = MsgBox("请选择以下功能: 1. 定时关机 2. 定时重启 3. 30分钟后关机 4. 1小时后关机 5. 取消定时关机 6. 注销当前用户 7. 锁定计算机 8. 退出脚本", vbInformation + vbYesNo + vbDefaultButton1, "多功能定时关机") ' 根据不同的选择执行对应的功能 Select Case intChoice Case vbYes + 1 ' 执行定时关机功能,输入关机时间 Dim strTime1 strTime1 = InputBox("请输入要定时关机的时间(格式为HH:mm):", "定时关机") If strTime1 <> "" Then objShell.Run "shutdown.exe -s -t 00 -f -t " & strTime1, 0, True End If Case vbYes + 2 ' 执行定时重启功能,输入重启时间 Dim strTime2 strTime2 = InputBox("请输入要定时重启的时间(格式为HH:mm):", "定时重启") If strTime2 <> "" Then objShell.Run "shutdown.exe -r -t 00 -f -t " & strTime2, 0, True End If Case vbYes + 3 ' 执行30分钟后关机功能 objShell.Run "shutdown.exe -s -t 1800 -f", 0, True Case vbYes + 4 ' 执行1小时后关机功能 objShell.Run "shutdown.exe -s -t 3600 -f", 0, True Case vbYes + 5 ' 取消定时关机 objShell.Run "shutdown.exe -a", 0, True Case vbYes + 6 ' 注销当前用户 objShell.Run "shutdown.exe -l", 0, True Case vbYes + 7 ' 锁定计算机 objShell.Run "Rundll32.exe user32.dll,LockWorkStation", 0, True Case Else ' 退出脚本 WScript.Quit End Select ' 释放对象 Set objShell = Nothing ``` 请注意,此脚本仅适用于Windows系统。在使用脚本之前,请确保仔细阅读注释,并根据需要选择相应的功能。 ### 回答3: 以下是一个用VBS写的多功能定时关机脚本,共包含了8个选项,并且每个选项都有相应的注释说明: ```vbscript Option Explicit ' 创建 WScript.Shell 对象 Dim WshShell Set WshShell = CreateObject("WScript.Shell") ' 获取用户输入的选项 Dim choice choice = InputBox("请选择操作:" & vbNewLine & "1. 立即关机" & vbNewLine & "2. 定时关机" & vbNewLine & "3. 定时重启" & vbNewLine & "4. 定时注销" & vbNewLine & "5. 取消定时关机" & vbNewLine & "6. 取消定时重启" & vbNewLine & "7. 取消定时注销" & vbNewLine & "8. 退出", "多功能定时关机脚本") ' 执行相应的选项 Select Case choice Case "1" ' 立即关机 WshShell.Run "shutdown /s /t 0", 0, True MsgBox "计算机将立即关机。" Case "2" ' 定时关机 Dim time time = InputBox("请输入定时关机的时间(单位:分钟):", "定时关机") WshShell.Run "shutdown /s /t " & time * 60, 0, True MsgBox "计算机将在 " & time & " 分钟后关机。" Case "3" ' 定时重启 Dim time time = InputBox("请输入定时重启的时间(单位:分钟):", "定时重启") WshShell.Run "shutdown /r /t " & time * 60, 0, True MsgBox "计算机将在 " & time & " 分钟后重启。" Case "4" ' 定时注销 Dim time time = InputBox("请输入定时注销的时间(单位:分钟):", "定时注销") WshShell.Run "shutdown /l /t " & time * 60, 0, True MsgBox "计算机将在 " & time & " 分钟后注销。" Case "5" ' 取消定时关机 WshShell.Run "shutdown /a", 0, True MsgBox "已取消定时关机。" Case "6" ' 取消定时重启 WshShell.Run "shutdown /a", 0, True MsgBox "已取消定时重启。" Case "7" ' 取消定时注销 WshShell.Run "shutdown /a", 0, True MsgBox "已取消定时注销。" Case "8" ' 退出脚本 MsgBox "脚本已退出。" Case Else MsgBox "无效的选项,请重新运行脚本并选择正确的选项。" End Select ' 释放 WScript.Shell 对象 Set WshShell = Nothing ``` 此脚本使用了Shell对象的Run方法来执行关机、重启和注销的命令,并通过InputBox函数获取用户输入的选项和时间。通过选择不同的选项,用户可以实现立即关机、定时关机、定时重启、定时注销、取消定时关机、取消定时重启、取消定时注销以及退出脚本的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值