2012-07-30 40 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和希望快速谷歌搜索更多信息幫助你很多。

相關問題