使用C#建立快捷方式

原文: 使用C#建立快捷方式

  在Windows中建立快捷方式很簡單,直接用右鍵點擊文件或文件夾,選擇建立快捷方式便可。若是想用C#代碼的方式建立,就沒有那麼方便了,由於.NET框架沒有提供直接建立快捷方式的方法。html

  首先咱們看一下快捷方式是什麼。對快捷方式點右鍵,選擇屬性菜單,在彈出的屬性對話框的常規Tab中能夠看到,文件類型是快捷方式(.lnk),因此快捷方式本質上是lnk文件。shell

快捷方式_常規Tab

  切換到快捷方式Tab,能夠看到該快捷方式的相關屬性(以下圖)。express

  • 名稱:在圖標後面的文本,該快捷方式的文件名稱
  • 目標類型:該快捷方式指向目標的類型
  • 目標位置:該快捷方式指向目標的上級文件夾名稱
  • 目標:該快捷方式指向目標的完整路徑。
  • 起始位置:該快捷方式指向目標的上級文件夾完整路徑。
  • 快捷鍵:可設定快捷鍵打開該快捷方式,快捷鍵是Ctrl、Alt、Shift和字母鍵的組合。
  • 運行方式:經過該快捷方式打開目標以後運行的窗口大小。
  • 備註:對該快捷方式的備註信息,當鼠標停留在快捷方式上時會顯示。

快捷方式_快捷方式Tab

  (題外話:IE的快捷方式又把我噁心到了,目標後面緊跟着360的垃圾網址。這就是運行瀏覽器時自動打開某個網址的一種方式,極度鄙視這種流氓行爲。)瀏覽器

  使用C#建立快捷方式就是要建立一個lnk文件,並設置相關的屬性。.NET框架自己是沒有提供方法的,須要引入IWshRuntimeLibrary。在添加引用對話框中搜索Windows Script Host Object Model,選擇以後添加到Project的引用中。框架

快捷方式_引用管理器

  詳細代碼以下:(文章來源:http://www.cnblogs.com/conexpress/p/ShortcutCreator.html)spa

 1 using IWshRuntimeLibrary;  2 using System.IO;  3 using System;  4 
 5 namespace MyLibrary  6 {  7     /// <summary>
 8     /// 建立快捷方式的類  9     /// </summary>
10     /// <remarks></remarks>
11     public class ShortcutCreator 12  { 13         //須要引入IWshRuntimeLibrary,搜索Windows Script Host Object Model
14 
15         /// <summary>
16         /// 建立快捷方式 17         /// </summary>
18         /// <param name="directory">快捷方式所處的文件夾</param>
19         /// <param name="shortcutName">快捷方式名稱</param>
20         /// <param name="targetPath">目標路徑</param>
21         /// <param name="description">描述</param>
22         /// <param name="iconLocation">圖標路徑,格式爲"可執行文件或DLL路徑, 圖標編號", 23         /// 例如System.Environment.SystemDirectory + "\\" + "shell32.dll, 165"</param>
24         /// <remarks></remarks>
25         public static void CreateShortcut(string directory, string shortcutName, string targetPath, 26             string description = null, string iconLocation = null) 27  { 28             if (!System.IO.Directory.Exists(directory)) 29  { 30  System.IO.Directory.CreateDirectory(directory); 31  } 32 
33             string shortcutPath = Path.Combine(directory, string.Format("{0}.lnk", shortcutName)); 34             WshShell shell = new WshShell(); 35             IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutPath);//建立快捷方式對象
36             shortcut.TargetPath = targetPath;//指定目標路徑
37             shortcut.WorkingDirectory = Path.GetDirectoryName(targetPath);//設置起始位置
38             shortcut.WindowStyle = 1;//設置運行方式,默認爲常規窗口
39             shortcut.Description = description;//設置備註
40             shortcut.IconLocation = string.IsNullOrWhiteSpace(iconLocation) ? targetPath : iconLocation;//設置圖標路徑
41             shortcut.Save();//保存快捷方式
42  } 43 
44         /// <summary>
45         /// 建立桌面快捷方式 46         /// </summary>
47         /// <param name="shortcutName">快捷方式名稱</param>
48         /// <param name="targetPath">目標路徑</param>
49         /// <param name="description">描述</param>
50         /// <param name="iconLocation">圖標路徑,格式爲"可執行文件或DLL路徑, 圖標編號"</param>
51         /// <remarks></remarks>
52         public static void CreateShortcutOnDesktop(string shortcutName, string targetPath, 53             string description = null, string iconLocation = null) 54  { 55             string desktop = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);//獲取桌面文件夾路徑
56  CreateShortcut(desktop, shortcutName, targetPath, description, iconLocation); 57  } 58 
59  } 60 }

  若是須要獲取快捷方式的屬性,能夠調用WshShell對象的CreateShortcut方法,傳入完整的快捷方式文件路徑便可獲得已有快捷方式的IWshShortcut實體。修改快捷方式的屬性,則修改IWshShortcut實體的屬性,而後調用Save方法便可。3d

 

參考資料:http://developer.51cto.com/art/200908/147760.htmcode

相關文章
相關標籤/搜索