ZetCode

VBScript Shell.Application

最后修改于 2025 年 4 月 4 日

VBScript 中的 Shell.Application 对象提供了对 Windows shell 功能的访问。它允许脚本与文件系统、特殊文件夹和系统操作进行交互。这个强大的自动化工具可以操作文件、启动应用程序和访问系统信息。

Shell.Application 是 Windows Script Host 对象模型的一部分。它为常见的 shell 任务提供了方法和属性。本教程将通过实际示例介绍 Shell.Application,以展示其在各种场景下的功能。

Shell.Application 概述

Shell.Application 对象使用 VBScript 中的 CreateObject 函数创建。它通过其方法和属性提供对 Windows shell 功能的访问。常见用途包括文件操作、特殊文件夹访问和系统对话框。

关键方法包括 NameSpace、Explore、Open 和 MinimizeAll。该对象可以导航文件夹、启动应用程序和控制窗口。了解这些功能可以实现强大的 Windows 管理自动化脚本。

在 Explorer 中打开文件夹

Explore 方法在 Windows Explorer 中打开指定的文件夹。这对于需要向用户显示文件夹内容的脚本很有用。该方法接受文件夹路径作为其参数。

open_folder.vbs
Set objShell = CreateObject("Shell.Application")
objShell.Explore "C:\Windows\System32"

Set objShell = Nothing

此示例在 Windows Explorer 中打开 System32 文件夹。CreateObject 函数实例化 Shell.Application 对象。Explore 方法显示文件夹。完成后务必使用 Set to Nothing 释放对象。

访问特殊文件夹

Shell.Application 可以访问 Windows 特殊文件夹,如桌面或我的文档。NameSpace 方法返回特殊文件夹的 Folder 对象。这些文件夹通过其 CSIDL(常量特殊项 ID 列表)值进行标识。

special_folders.vbs
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10) ' My Documents

WScript.Echo "My Documents path: " & objFolder.Self.Path

Set objFolder = Nothing
Set objShell = Nothing

此脚本显示“我的文档”文件夹的路径。十六进制值 &H10 代表“我的文档”CSIDL。Self.Path 属性返回文件夹的完整路径。常见的 CSIDL 值包括桌面 (&H0) 和程序文件 (&H26)。

最小化所有窗口

MinimizeAll 方法最小化所有打开的窗口,显示桌面。这相当于按 Windows+D。该方法不接受任何参数,并立即执行操作。

minimize_windows.vbs
Set objShell = CreateObject("Shell.Application")
objShell.MinimizeAll

Set objShell = Nothing

这个简单的例子演示了最小化所有窗口。MinimizeAll 方法提供了对桌面的快速访问。还有一个相应的 UndoMinimizeALL 方法来恢复窗口。

创建快捷方式

Shell.Application 可以使用 NameSpace 方法和 Folder 对象创建快捷方式。CreateShortcut 方法生成新的快捷方式文件。这对于安装脚本或桌面自定义很有用。

create_shortcut.vbs
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.NameSpace(&H10) ' My Documents

' Create shortcut in My Documents
Set objShortcut = objFolder.NewFolderItem("Notepad.lnk", 1)
objShortcut.TargetPath = "C:\Windows\System32\notepad.exe"
objShortcut.Save

Set objShortcut = Nothing
Set objFolder = Nothing
Set objShell = Nothing

此脚本在“我的文档”中创建记事本快捷方式。类型为 1 的 NewFolderItem 方法创建快捷方式。TargetPath 属性设置目标应用程序。Save 方法将快捷方式写入磁盘。

显示文件属性

FileRun 方法显示指定文件的“属性”对话框。这会显示与右键单击文件并选择“属性”相同的对话框。该方法接受完整的文件路径作为其参数。

file_properties.vbs
Set objShell = CreateObject("Shell.Application")
objShell.FileRun "C:\Windows\System32\notepad.exe"

Set objShell = Nothing

此示例显示记事本 (Notepad.exe) 的属性。FileRun 方法打开标准的 Windows 文件属性对话框。这对于需要向用户显示文件信息的脚本很有用。

来源

Windows Shell 文档

在本文中,我们探讨了 VBScript 中的 Shell.Application 对象,涵盖了其关键方法和实际应用。从打开文件夹到创建快捷方式,这些示例展示了强大的 Windows 自动化功能。有了这些知识,您就可以通过高级 shell 交互来增强您的脚本。

作者

我叫 Jan Bodnar,是一名充满激情的程序员,拥有多年的编程经验。我自 2007 年以来一直撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在教授编程方面拥有八年以上的经验。

列出所有 VBScript 教程