c#通過純程式碼建立案頭捷徑、建立程式功能表項目、將網頁添加到收藏夾
開始菜單》程式功能表項目:
添加到收藏夾:
相關函數代碼:
public const int SW_SHOWNORMAL = 1; /// <summary> /// 建立捷徑。 /// </summary> /// <param name="shortcutPath">捷徑路徑。</param> /// <param name="targetPath">目標路徑。</param> /// <param name="workingDirectory">工作路徑。</param> /// <param name="description">快速鍵描述。</param> public static bool CreateShortcut(string shortcutPath, string targetPath, string workingDirectory, string description, string iconLocation = null) { try { CShellLink cShellLink = new CShellLink(); IShellLink iShellLink = (IShellLink)cShellLink; iShellLink.SetDescription(description); iShellLink.SetShowCmd(SW_SHOWNORMAL); iShellLink.SetPath(targetPath); iShellLink.SetWorkingDirectory(workingDirectory); if (!string.IsNullOrEmpty(iconLocation)) { iShellLink.SetIconLocation(iconLocation, 0); } IPersistFile iPersistFile = (IPersistFile)iShellLink; iPersistFile.Save(shortcutPath, false); Marshal.ReleaseComObject(iPersistFile); iPersistFile = null; Marshal.ReleaseComObject(iShellLink); iShellLink = null; Marshal.ReleaseComObject(cShellLink); cShellLink = null; return true; } catch //(System.Exception ex) { return false; } }
/// <summary> /// 建立案頭捷徑 /// </summary> /// <param name="targetPath">可執行檔路徑</param> /// <param name="description">捷徑名稱</param> /// <param name="iconLocation">捷徑表徵圖路徑</param> /// <param name="workingDirectory">工作路徑</param> /// <returns></returns> public static bool CreateDesktopShortcut(string targetPath, string description, string iconLocation = null, string workingDirectory = null) { if (string.IsNullOrEmpty(workingDirectory)) { workingDirectory = Shortcut.GetDeskDir(); } return Shortcut.CreateShortcut(Shortcut.GetDeskDir() + "\\" + description + ".lnk", targetPath, workingDirectory, description, iconLocation); } /// <summary> /// 建立程式菜單捷徑 /// </summary> /// <param name="targetPath">可執行檔路徑</param> /// <param name="description">捷徑名稱</param> /// <param name="menuName">程式菜單中子功能表名稱,為空白則不建立子功能表</param> /// <param name="iconLocation">捷徑表徵圖路徑</param> /// <param name="workingDirectory">工作路徑</param> /// <returns></returns> public static bool CreateProgramsShortcut(string targetPath, string description, string menuName, string iconLocation = null, string workingDirectory = null) { if (string.IsNullOrEmpty(workingDirectory)) { workingDirectory = Shortcut.GetProgramsDir(); } string shortcutPath = Shortcut.GetProgramsDir(); if (!string.IsNullOrEmpty(menuName)) { shortcutPath += "\\" + menuName; if (!System.IO.Directory.Exists(shortcutPath)) { try { System.IO.Directory.CreateDirectory(shortcutPath); } catch //(System.Exception ex) { return false; } } } shortcutPath += "\\" + description + ".lnk"; return Shortcut.CreateShortcut(shortcutPath, targetPath, workingDirectory, description, iconLocation); } /// <summary> /// 將網頁添加到收藏夾 /// </summary> /// <param name="url">要添加到收藏夾的網址</param> /// <param name="description">標題</param> /// <param name="folderName">收藏檔案夾名稱</param> /// <param name="iconLocation">表徵圖檔案路徑</param> /// <param name="workingDirectory">工作路徑</param> /// <returns></returns> public static bool AddFavorites(string url, string description, string folderName, string iconLocation = null, string workingDirectory = null) { if (string.IsNullOrEmpty(workingDirectory)) { workingDirectory = Shortcut.GetProgramsDir(); } string shortcutPath = Shortcut.GetFavoriteDir(); if (!string.IsNullOrEmpty(folderName)) { shortcutPath += "\\" + folderName; if (!System.IO.Directory.Exists(shortcutPath)) { try { System.IO.Directory.CreateDirectory(shortcutPath); } catch //(System.Exception ex) { return false; } } } shortcutPath += "\\" + description + ".lnk"; return Shortcut.CreateShortcut(shortcutPath, url, workingDirectory, description, iconLocation); }