C#中的全局键钩
Posted
技术标签:
【中文标题】C#中的全局键钩【英文标题】:Global Keyhook in C# 【发布时间】:2013-03-24 11:30:55 【问题描述】:我想制作一个新的应用程序,我可以通过外部 GUI 的按键进行控制。如果按键被按下,首先应该有一个文本字段发生变化。最后我想在 keyPress 上启动一个计时器。我用谷歌搜索并访问了 Stack Overflow,但没有发现任何东西可以帮助我真正解决我的问题。
我在 Stack Overflow 上找到了 post 并尝试了代码。但我只是在控制台中获取密钥,不知道如何在失焦的 GUI 上请求它。
任何帮助都将不胜感激。
【问题讨论】:
【参考方案1】:虽然这只是一个链接,但我过去成功使用了代码项目文章“Processing Global Mouse and Keyboard Hooks in C#”中的库。
您可以注册您的事件接收器以接收有关多个事件的通知,例如:
var actHook = new UserActivityHook();
// hang on events
actHook.OnMouseActivity += new MouseEventHandler(MouseMoved);
actHook.KeyDown += new KeyEventHandler(MyKeyDown);
actHook.KeyPress += new KeyPressEventHandler(MyKeyPress);
actHook.KeyUp += new KeyEventHandler(MyKeyUp);
在我看来相当容易使用。
更新:
该项目也可通过a newer version from the same author, over at CodePlex 获得。
【讨论】:
谢谢,我看起来很有希望。我现在去看看。 我将它缩减为像 this 这样的 KeyDown 侦听器,但它给了我一个错误。 'System.ComponentModel.Win32Exception' 类型的未处理异常 @GeroK 尝试检查完整的异常(包括堆栈跟踪、错误消息和内部异常)。 codeproject.com 糟糕的一件事是完全缺乏审查。这个项目特别糟糕,任何人都有太多的方法可以打断他们的腿。请不要推荐它。 什么特别不好?我真的使用成功了。以上是关于C#中的全局键钩的主要内容,如果未能解决你的问题,请参考以下文章