2009-10-14 110 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