0

可能重复:
使用 RegisterHotKey 注册多个热键

对不起,但我真的用谷歌搜索了很长时间,我没有得到任何清晰的代码!

我想知道如何使用以下方法在 C# 中注册全局热键:

Win32.RegisterHotKey(hWndSource.Handle, add, 
                     Win32.MOD_CONTROL | Win32.MOD_SHIFT, Win32.VK_KEY_D);

最重要的是如何捕获多个热键。

可以说我想要Ctrl+E击键来做一些与Ctrl+R应该做的不同的事情。

4

1 回答 1

0

查看我相当老但(我相信)仍在使用键盘挂钩的解决方案,允许您创建挂钩、分配键盘快捷键并将其捕获为标准 .NET 事件:

hook = new KeyboardHook();
hook.AddFilter(Keys.E, true /* Ctrl */, false /* Alt */, false /* Shift */);
hook.KeyPressed +=new KeyboardHookEventHandler(hook_KeyPressed);
hook.Install();

(三个布尔参数的使用远非优雅,我今天会用一个标志枚举来做到这一点。我很抱歉)

来源在这里:http ://weblogs.asp.net/avnerk/archive/2005/10/06/by-hook-or-by-crook.aspx

于 2012-10-26T10:38:19.133 回答