根据此question,我尝试在我的WPF应用程序中使用Windows键。但是,它不起作用!这里是我的代码如何在WPF应用程序中使用Windows键
case "My Computer":
DeviceSpeak.Speak("Opening My Computer");
SendKeys.SendWait("{Key.LWin}E");
break;
我的问题是如何在C#中使用Windows键。我想打开我的电脑(WindwosKey + E)。
根据此question,我尝试在我的WPF应用程序中使用Windows键。但是,它不起作用!这里是我的代码如何在WPF应用程序中使用Windows键
case "My Computer":
DeviceSpeak.Speak("Opening My Computer");
SendKeys.SendWait("{Key.LWin}E");
break;
我的问题是如何在C#中使用Windows键。我想打开我的电脑(WindwosKey + E)。
我不认为有一种方法来模拟使用SendKeys
的按键WIN
。无论如何,你可以使用他们的CLSID打开特殊位置:
// open "My Computer"
System.Diagnostics.Process.Start("::{20d04fe0-3aea-1069-a2d8-08002b30309d}");
一些更多的CLSID(有些人可能无法正常工作):
Administrative Tools: {D20EA4E1-3957-11d2-A40B-0C5020524153}
All Tasks: {ED7BA470-8E54-465E-825C-99712043E01C}
Control Panel: {21EC2020-3AEA-1069-A2DD-08002b30309d}
Connections: {241D7C96-F8BF-4F85-B01F-E2B043341A4B}
Fonts: {D20EA4E1-3957-11d2-A40B-0C5020524152}
Computer: {20D04FE0-3AEA-1069-A2D8-08002B30309D}
Documents: {450D8FBA-AD25-11D0-98A8-0800361B1103}
History: {ff393560-c2a7-11cf-bff4-444553540000}
Network Places: {208d2c60-3aea-1069-a2d7-08002b30309d}
Printers and Faxes: {2227A280-3AEA-1069-A2DE-08002B30309D}
Programs Folder: {7be9d83c-a729-4d97-b5a7-1b7313c39e0a}
Recycle Bin: {645FF040-5081-101B-9F08-00AA002F954E}
Start Menu: {48e7caab-b918-4e58-a94d-505519c795dc}
Scheduled Tasks: {D6277990-4C6A-11CF-8D87-00AA0060F5BF}
您可以找到有关CLSID here和希望快速谷歌搜索更多信息帮助你很多。
请您介绍一下这个东西究竟是什么(“:: {20d04fe0-3aea-1069-a2d8-08002b30309d}”) – user1563221 2012-07-30 16:16:43
在Windows中,特殊位置有GUID与它们关联。如果以“::”作为前缀,它们几乎可以像文件名一样使用。默认情况下,'explorer.exe'被分配来处理这些位置,所以当你指定一个带有“::”前缀的GUID时,会启动explorer并将GUID作为命令行参数传递给它。 Explorer然后打开相关的特殊位置。这些GUID值是硬编码的,你可以在MSDN上找到它们,或使用注册表编辑器。 – max 2012-07-30 16:31:34
谢谢你的解释:-) – user1563221 2012-07-30 17:01:09