Remember to set Embed Interop Types to False to reference Interop.IWshRuntimeLibrary. I tested and works without errors.
// Make sure you use try/catch block because your App may has no permissions on the target path! try { CreateShortcut(@"C:\temp", @"C:\MyShortcutFile.lnk", "Custom Shortcut", "/param", "Ctrl+F", @"c:\"); } catch (Exception ex) { Console.WriteLine(ex.Message); } /// <summary> /// Create Windows Shorcut /// </summary> /// <param name="SourceFile">A file you want to make shortcut to</param> /// <param name="ShortcutFile">Path and shorcut file name including file extension (.lnk)</param> public static void CreateShortcut(string SourceFile, string ShortcutFile) { CreateShortcut(SourceFile, ShortcutFile, null, null, null, null); } /// <summary> /// Create Windows Shorcut /// </summary> /// <param name="SourceFile">A file you want to make shortcut to</param> /// <param name="ShortcutFile">Path and shorcut file name including file extension (.lnk)</param> /// <param name="Description">Shortcut description</param> /// <param name="Arguments">Command line arguments</param> /// <param name="HotKey">Shortcut hot key as a string, for example "Ctrl+F"</param> /// <param name="WorkingDirectory">"Start in" shorcut parameter</param> public static void CreateShortcut(string TargetPath, string ShortcutFile, string Description, string Arguments, string HotKey, string WorkingDirectory) { // Check necessary parameters first: if (String.IsNullOrEmpty(TargetPath)) throw new ArgumentNullException("TargetPath"); if (String.IsNullOrEmpty(ShortcutFile)) throw new ArgumentNullException("ShortcutFile"); // Create WshShellClass instance: var wshShell = new WshShellClass(); // Create shortcut object: IWshRuntimeLibrary.IWshShortcut shorcut = (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut(ShortcutFile); // Assign shortcut properties: shorcut.TargetPath = TargetPath; shorcut.Description = Description; if (!String.IsNullOrEmpty(Arguments)) shorcut.Arguments = Arguments; if (!String.IsNullOrEmpty(HotKey)) shorcut.Hotkey = HotKey; if (!String.IsNullOrEmpty(WorkingDirectory)) shorcut.WorkingDirectory = WorkingDirectory; // Save the shortcut: shorcut.Save(); }
source: http://zayko.net/post/How-to-create-Windows-shortcut- (C) .aspx
Nesim raazon
source share