2012-07-30 39 views
2

根据此question,我尝试在我的WPF应用程序中使用Windows键。但是,它不起作用!这里是我的代码如何在WPF应用程序中使用Windows键

case "My Computer": 
DeviceSpeak.Speak("Opening My Computer"); 
SendKeys.SendWait("{Key.LWin}E"); 
break; 

我的问题是如何在C#中使用Windows键。我想打开我的电脑(WindwosKey + E)。

回答

3

我不认为有一种方法来模拟使用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} 
+1

请您介绍一下这个东西究竟是什么(“:: {20d04fe0-3aea-1069-a2d8-08002b30309d}”) – user1563221 2012-07-30 16:16:43

+0

在Windows中,特殊位置有GUID与它们关联。如果以“::”作为前缀,它们几乎可以像文件名一样使用。默认情况下,'explorer.exe'被分配来处理这些位置,所以当你指定一个带有“::”前缀的GUID时,会启动explorer并将GUID作为命令行参数传递给它。 Explorer然后打开相关的特殊位置。这些GUID值是硬编码的,你可以在MSDN上找到它们,或使用注册表编辑器。 – max 2012-07-30 16:31:34

+0

谢谢你的解释:-) – user1563221 2012-07-30 17:01:09

0

您可以找到有关CLSID here和希望快速谷歌搜索更多信息帮助你很多。

相关问题