如何使用全局键盘钩子发送密钥?

时间:2011-08-07 07:04:00

标签: c++ windows keyboard hook inject

我试图将密钥发送到一个应用程序,该应用程序不响应我迄今使用的任何API(SendInput(),PostMessage(),SendMessage()等)。但是,我测试了Windows'屏幕键盘实用程序并按下我需要的键,应用程序轻松接收这些键。

如果我理解正确,键盘实用程序使用全局键盘挂钩发送密钥,所以我对我如何能够这样做感兴趣。我已经尝试过在谷歌上找到如何做到这一点的例子,但却没有结果。

感谢。

2 个答案:

答案 0 :(得分:2)

挂钩用于拦截事件,而不是发送新事件。所以你要问的是钩子不可能。 SendInput是要走的路。可能你做错了什么,所以如果发布不起作用的代码并调试出错的话会更好。

答案 1 :(得分:2)

我解决了。我正在向DirectX应用程序发送密钥。事实证明我必须发送DirectX扫描码而不是普通的VK_KEY。

可在以下位置找到扫描代码列表:http://www.gamespp.com/directx/directInputKeyboardScanCodes.html

将这些与SendInput()一起使用,一切都很顺利。

也感谢您的帮助。

干杯。