`
using IW = IWshRuntimeLibrary;
public static void CreateShortcutOnDesktop( string LnkName)
{
String shortcutPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), LnkName + ".lnk");
if (!System.IO.File.Exists(shortcutPath))
{
string AppName = System.IO.Path.GetFileName(System.Reflection.Assembly.GetEntryAssembly().GetName().Name);
// 获取当前应用程序目录地址
String exePath = AppDomain.CurrentDomain.BaseDirectory + AppName + ".exe";
IW.IWshShell shell = new IW.WshShell();
// 确定是否已经创建的快捷键被改名了
foreach (var item in Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "*.lnk"))
{
IW.WshShortcut tempShortcut = (IW.WshShortcut)shell.CreateShortcut(item);
if (tempShortcut.TargetPath == exePath)
{
return;
}
}
IW.WshShortcut shortcut = (IW.WshShortcut)shell.CreateShortcut(shortcutPath);
shortcut.TargetPath = exePath;
shortcut.Arguments = "";// 参数
shortcut.Description = AppName + exePath;
shortcut.WorkingDirectory = Environment.CurrentDirectory;//程序所在文件夹,在快捷方式图标点击右键可以看到此属性
shortcut.IconLocation = exePath;//图标,该图标是应用程序的资源文件
//shortcut.Hotkey = "CTRL+SHIFT+W";//热键,发现没作用,大概需要注册一下
shortcut.WindowStyle = 1;
shortcut.Save();
MessageBox.Show("桌面快捷方式已创建!");
}
}`