2009-10-14 109 views
1

什麼是RegisterHotKeys和全局鍵盤掛鉤,它們是如何工作的?我想讓一個關鍵點專注於我的應用程序的表單(當它最小化時),然後專注於一個文本框,所以從我讀過的內容中我需要使用RegisterHotKeys函數(這對我來說是一個更好的解決方案需求),但我找不到如何或在哪裏我可以選擇我自己的密鑰(只有一個密鑰 - ESC),然後命令它專注於我的表單,然後在文本框中。RegisterHotKeys和全局鍵盤鉤子?

回答

1

關於如何使用熱鍵的示例。

class myform : Form 
{ 
    public myform() 
    { 
     RegisterHotKey(Handle, id, modifiers, mykey); 
    } 
    protected override void WndProc(ref Message m) 
    { 
     if (m.Msg == 0x312) // this is WM_HOTKEY 
     { 
      Show(); 
     } 
     base.WndProc(ref m); 
    } 
} 
+0

非常感謝! btw什麼關鍵是0X312? 謝謝! Amit – Mazki516 2009-10-14 02:36:25

+0

0x312不是密鑰,它是WM_HOTKEY消息。關鍵是您使用RegisterHotKey註冊的虛擬鍵碼。 http://msdn.microsoft.com/en-us/library/ms927178.aspx – 2009-10-14 02:54:56

+0

Andrew嗨,非常感謝。但我沒有「到那裏」, RegisterHoyKey(手柄,ID ???,修飾符,mykey ??) 我有一個條形碼閱讀器,我配置它「按下」ESC鍵,然後發送條碼然後「按」進入。 我希望我的程序能夠識別ESC「Press」,然後顯示錶單然後集中在一個文本框(這兩個命令我知道該怎麼做),有一種方法可以在沒有修飾符的情況下注冊一個hoy鍵(Null is好嗎?) 你給了我很棒的頁面,但我不知道在id和mykey中寫什麼,函數請求int(uint?) 非常感謝! 阿米特 – Mazki516 2009-10-14 21:58:07