1. 程式人生 > >c#: 創建桌面快捷方式

c#: 創建桌面快捷方式

info nvi public span 當前 直接 window rar cut

App適配輸出方式時發現問題,聊做備忘。

需要註意的是:不要直接引用Interop.IWshRuntimeLibrary.dll程序集,因為它可能是x86x64的,倘若程序以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#: 創建桌面快捷方式