我目前正在以编程方式创建快捷方式,但是我想知道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#中实现这种效果。
答案 0 :(得分: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();
}