0

我目前正在以编程方式创建快捷方式,但是我想知道是否可以在 C# 中以类似的方式创建全局快捷方式。

下面是我的代码:

WshShell shell = new WshShell();
string shortcutLocation = "pathToShortcut//Shortcut1.lnk"
IWshShortcut shortcut = shell.CreateShortcut(shortcutLocation);
shortcut.Arguments = "foo bar";
shortcut.Description = "Test Shortcut";
shortcut.TargetPath = "pathToShortcutExe";
shortcut.WorkingDirectory = "pathToWorkingDirectory"
shortcut.Save();

此代码非常适合为用户创建快捷方式,但我想知道是否存在为系统执行此操作的方法。我已经看到全局安装的程序在所有用户上都放置了快捷方式,所以我很好奇如何在 C# 中实现这种效果。

4

1 回答 1

2

是的,您可以..您必须添加一个参考项目 > 添加参考 > COM > Windows 脚本宿主对象模型。

    using IWshRuntimeLibrary;

    private void CreateShortcut()
    {
      object shDesktop = (object)"Desktop";
      WshShell shell = new WshShell();
      string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Notepad.lnk";
      IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
      shortcut.Description = "New shortcut for a Notepad";
      shortcut.Hotkey = "Ctrl+Shift+N";
      shortcut.TargetPath = Environment.GetFolderPath(Environment.SpecialFolders.System) + @"\notepad.exe";
      shortcut.Save();
    }
于 2015-07-27T20:28:37.690 回答