2013-03-24 59 views
2

我想创建一个新的应用程序,我可以通过外部GUI中的键进行控制。如果按下该键,则应该首先更改文本字段。最后我想在keyPress上启动一个计时器。我google搜索并访问堆栈溢出,但没有发现任何可以帮助我真正解决我的问题。C中的全局键钩#

我在Stack Overflow上找到了一个post,并试了一下代码。但是我只是在一个控制台中获得了密钥,并且不知道如何在一个没有关注的GUI上请求它。

任何帮助将是非常可观的。

回答

2

虽然这只是一个链接,但我成功地使用了代码项目文章“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可用。

+1

谢谢你,我看起来很有前途。我现在看看。 – 2013-03-24 11:48:54

+0

我把它切成了像[this]这样的KeyDown Listener(http://grabilla.com/03318-c15b6222-e4c6-4961-bef4-013562b484ae.html),但它给了我一个错误。 '类型为'System.ComponentModel.Win32Exception'的未处理的异常' – 2013-03-24 11:59:55

+0

@GeroK尝试检查完整的异常(包括堆栈跟踪,错误消息和内部消除)。 – 2013-03-24 13:03:43