WScript.Shell 教程:深入了解 Windows 脚本宿主

举报
yd_47669746 发表于 2026/11/02 12:53:36 2026/11/02
【摘要】 什么是 WScript.Shell?WScript.Shell 是一个强大的对象,它允许你在 Windows 脚本宿主(如 VBScript 和 JScript)中与 Windows 操作系统进行交互。通过它,你可以实现许多自动化任务,例如:运行程序: 启动任何可执行文件,并可以指定运行方式(如窗口显示方式、等待程序结束等)。创建快捷方式: 在桌面上或其他位置创建快捷方式。读写注册表: 修...

什么是 WScript.Shell?

WScript.Shell 是一个强大的对象,它允许你在 Windows 脚本宿主(如 VBScript 和 JScript)中与 Windows 操作系统进行交互。通过它,你可以实现许多自动化任务,例如:

  • 运行程序: 启动任何可执行文件,并可以指定运行方式(如窗口显示方式、等待程序结束等)。
  • 创建快捷方式: 在桌面上或其他位置创建快捷方式。
  • 读写注册表: 修改系统设置。
  • 发送按键: 模拟键盘输入。
  • 弹出消息框: 显示自定义消息。
  • 访问环境变量: 获取系统或用户环境变量。

如何使用 WScript.Shell?

创建对象:

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

常用方法:

  • Run:

    运行程序

    VBScript

    WshShell.Run "notepad.exe", 1, True  ' 打开记事本,显示窗口,等待程序结束
    
  • Exec:

    运行程序,并返回一个对象,提供对程序的更多控制

    VBScript

    Dim oExec
    Set oExec = WshShell.Exec("cmd.exe /c dir")
    WScript.Echo oExec.StdOut.ReadAll
    
  • SendKeys:

    发送按键

    VBScript

    WshShell.SendKeys "{TAB}{TAB}Hello, world!"
    
  • Popup:

    显示消息框

    VBScript

    WshShell.Popup "这是一个消息框", 5, "提示", 0
    
  • RegRead:

    读取注册表值

    VBScript

    Dim strComputer
    strComputer = "."
    Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
    strValue = objReg.GetDWORD(HKEY_LOCAL_MACHINE, "Software\Microsoft\Windows\CurrentVersion\Run", "MyApp")
    

示例:创建桌面快捷方式

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")

Dim shortcut
Set shortcut = WshShell.CreateShortcut("C:\Users\YourName\Desktop\新建文件夹.lnk")
shortcut.TargetPath = "C:\YourFolder"
shortcut.WindowStyle = 1  ' 正常窗口
shortcut.IconLocation = "C:\Windows\System32\shell32.dll, 17"
shortcut.Save

注意事项:

  • 权限: 运行脚本可能需要管理员权限。
  • 安全性: 谨慎使用 WScript.Shell,避免执行恶意代码。
  • 兼容性: 不同版本的 Windows 可能存在一些差异。

更多高级用法:

  • 环境变量: 使用 SpecialFolders 属性访问系统特殊文件夹。
  • 注册表: 使用 RegWrite 方法写入注册表。
  • 文件系统: 使用 FileSystemObject 对象操作文件和文件夹。

cloudreve 快捷启动示例

将以下代码写入记事本,后缀改为 vbs,并加入开机启动。

Dim WShell
Set WShell = CreateObject("WScript.Shell")
WShell.Run """D:\Program Files\cloudreve\cloudreve.exe""", 0
Set WShell = Nothing

第三行中,路径上的三层引号是为了消除路径中空格的影响,0表示隐藏窗口

总结

WScript.Shell 是一个功能强大的工具,可以帮助你自动化许多 Windows 任务。通过掌握它的基本用法和高级技巧,你可以大大提高工作效率。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。