在后台应用程序中读取字符

时间:2014-05-21 18:30:48

标签: c# .net

您好我正在尝试创建一个简单的程序,即使我的应用程序在后台运行,也可以从键盘读取密钥。

场合
我想制作一个计时器来帮助我进行游戏。我已经有了计时器的程序,问题是我无法启动计时器而无需将游戏窗口切换到我的应用程序窗口。所以我配置了游戏键盘以释放键F11,F12。现在在游戏中,这个键什么都不做。

问题
我构建了一个包含keydown事件监听器和F11条件的窗体。但当我触发另一个窗口(例如游戏窗口)时,我的应用程序不再听到键盘,因为它在后台。

问题
如何构建一个听到键盘的应用程序,即使它不是活动窗口?

1 个答案:

答案 0 :(得分:4)

您需要使用global, low-level keyboard hook API调用安装SetWindowHookEx。使用 WH_KEYBOARD_LL 挂钩会将应用程序设置为始终拦截键盘事件,即使应用程序未处于活动状态也是如此。

This post on MSDN显示了一个如何从C#中获得所需内容的示例。