c#: 創建桌面快捷方式
阿新 • • 發佈:2019-03-17
info nvi public span 當前 直接 window rar cut
App適配輸出方式時發現問題,聊做備忘。
需要註意的是:不要直接引用Interop.IWshRuntimeLibrary.dll程序集,因為它可能是x86或x64的,倘若程序以Any CPU方式編譯,則它不再有適配性。
所以用com方式添加引用,得一與App目標平臺一至之程序集,可解惑也。
創建代碼如下:
public static void CreateShortcutOnDesktop(string shortcutName, string description = "") { //添加引用 (com->Windows Script Host Object Model),using IWshRuntimeLibrary;string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory); string shortcutPath = Path.Combine(desktopPath, string.Format("{0}.lnk", shortcutName)); if (!System.IO.File.Exists(shortcutPath)) { // 獲取當前應用程序目錄地址var shell = new IWshRuntimeLibrary.WshShell(); // 確定是否已經創建的快捷鍵被改名了 foreach (var item in Directory.GetFiles(desktopPath, "*.lnk")) { var ws = (IWshRuntimeLibrary.WshShortcut)shell.CreateShortcut(item);if (ws.TargetPath == App.ExecutablePath) { System.IO.File.Move(item, shortcutPath); return; } } var shortcut = (IWshRuntimeLibrary.WshShortcut)shell.CreateShortcut(shortcutPath); shortcut.TargetPath = App.ExecutablePath; shortcut.Arguments = string.Empty; shortcut.Description = description; shortcut.WorkingDirectory = Environment.CurrentDirectory; shortcut.IconLocation = App.ExecutablePath; shortcut.WindowStyle = 1; shortcut.Save(); } }
需要註意的是:因其中亦有File類定義,因此若要用到System.IO程序集中File,需以全名引之。
參考資料:
C#創建桌面快捷方式 - 心靈深處的那片凈土 - CSDN博客
用C#創建應用程序桌面快捷方式 - luwq168的專欄 - CSDN博客
c#: 創建桌面快捷方式