65.9K
CodeProject 正在变化。 阅读更多。
Home

在 .NET 程序中使用 WSH 创建 Shell 链接(快捷方式)

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.83/5 (32投票s)

2003年4月4日

3分钟阅读

viewsIcon

371490

downloadIcon

9228

使用Windows脚本主机对象模型创建快捷方式很容易。

Sample Image - maximum width is 600 pixels

引言

以编程方式在桌面上创建一个指向特定文件的快捷方式应该很简单。 遗憾的是,据我所知,.NET Framework 并不直接支持这一点。 但是,通过使用 Windows 脚本宿主对象模型,只需几行代码即可在文件系统中的任何位置创建快捷方式。 本文的目的是演示如何做到这一点,并提供一个包含方法的类,使其更简单。 演示程序使用此类来测试快捷方式的存在并使用复选框的点击来创建或删除它们。

Shell 链接

Windows 操作系统的标准功能是创建提供指向 Windows 文件系统中任何其他文件的链接的文件。 这些所谓的“快捷方式”或“Shell 链接”被用于许多方面。 例如,包括作为图标出现在 Windows 桌面、开始菜单、任务栏中的快速启动区域以及右键单击资源管理器中的文件时出现的“发送到”菜单上的快捷方式。 这些快捷方式在 Windows GUI 中很容易手动创建,但在 .NET 程序中,它们通常需要程序员使用 Interop。

Windows 脚本宿主

Windows 脚本宿主 (WSH) 允许从脚本文件中执行许多文件系统和网络操作。 幸运的是,通过包含对 WSH 运行时库 (IWshRuntimeLibrary) 的引用,可以直接在 .NET 程序中对 WSH 进行编程,这非常简单。 要在 Visual Studio .NET IDE 中执行此操作,请执行以下操作:创建新项目后,在解决方案资源管理器中右键单击项目名称,选择“添加引用”,选择“COM”选项卡,在列表框中找到并选择“Windows 脚本宿主对象模型”,单击“选择”,然后单击“确定”。 接下来,包含对该库的引用,例如,在 C# 文件中使用以下代码

            
  using IWshRuntimeLibrary;

一旦完成了这项基础工作,创建 Shell 链接就几乎是微不足道的了。

创建 Shell 链接

以下代码是使用 Windows 脚本宿主创建 Shell 链接的全部必要代码。

            
  WshShell shell = new WshShell();
  IWshShortcut link = (IWshShortcut)shell.CreateShortcut(LinkPathName);
  link.TargetPath=TargetPathName;
  link.Save();

IWshShortcut 对象具有许多属性,允许程序员设置目标路径、图标、文件名、参数等。 您可以在 Visual Studio 中使用对象浏览器或 Intellisense 探索这些属性。

Link 类

演示程序包含一个名为 Link 的类,该类封装了静态方法,用于测试快捷方式是否存在,并在必要时创建或删除快捷方式。 例如,要测试名为“Shell Link”的桌面快捷方式是否存在,请使用以下代码

                
  DesktopFolder=Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  if(Link.Exists(DesktopFolder, "Shell Link"))DoSomething();
  

 

要创建或删除名为“Shell Link”的桌面快捷方式,该快捷方式指向其路径由 TargetPathName 提供的文件,请使用以下代码

                
  DesktopFolder=Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
  Link.Update(DesktopFolder, TargetPathName, "Shell Link", Create);

如果 Createtrue,则将创建一个链接;如果 Createfalse,则将删除该链接。 如果不需要更改,代码将不会执行任何操作。

结论

就这些了! 将 WSH 融入 .NET 程序很简单。 创建 Shell 链接是这样做的充分理由之一。 您可能会在程序中找到 WSH 的其他用途,例如映射网络驱动器、设置打印机连接、确定磁盘上的可用空间,或任何可以使用 Windows 脚本宿主自动化的其他任务。

© . All rights reserved.