我正在尝试创建一个可以创建回收站快捷方式的控制台应用。
我的代码:
string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
object shDesktop = (object)"Desktop";
WshShell shell = new WshShell();
string shortcutAddress = (string)shell.SpecialFolders.Item(ref shDesktop) + @"\Recycle Bin.lnk";
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.Description = "New shortcut for Recycle Bin";
shortcut.Hotkey = "Ctrl+Shift+N";
shortcut.IconLocation = @"C:\WINDOWS\System32\imageres.dll";
shortcut.TargetPath = Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\Recycle.Bin";
shortcut.Save();
它创建一个"快捷方式"但它根本不可用。当弹出一条消息。我试着打开它产生:
" Windows正在搜索recycle.bin。要自己定位文件,请单击“浏览”。"
答案 0 :(得分:3)
如果要创建一个打开特殊文件夹的快捷方式,则需要创建一个explorer.exe的快捷方式和pass the appropriate GUID前缀为双冒号作为参数:
string explorerExePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "explorer.exe");
shortcut.TargetPath = explorerExePath;
shortcut.Arguments = "::{645FF040-5081-101B-9F08-00AA002F954E}";
您甚至不需要提供explorer.exe作为目标,您可以直接定位GUID:
shortcut.TargetPath = "::{645FF040-5081-101B-9F08-00AA002F954E}";
或者,您可以enable the display of the Recycle Bin on the desktop instead。
答案 1 :(得分:3)
将回收站的特殊CLSID指定为TargetPath
:
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutAddress);
shortcut.TargetPath = "::{645ff040-5081-101b-9f08-00aa002f954e}";
shortcut.Save();
也无需指定IconLocation
。在特殊文件夹的情况下,会自动选择合适的图标。