c++ - 原始输入替代键盘 Hook ?

标签 c++ winapi input keyboard hook

快速提问 --

我正在阅读有关键盘 Hook 的文章,有人建议使用原始输入来执行此操作,但我还没有找到任何相关示例。 例如我正在使用

RAWINPUTDEVICE rid[1];
rid[0].usUsagePage = 0x01;
rid[0].usUsage = 0x06;
rid[0].hwndTarget = hWnd;
rid[0].dwFlags = 0;
RegisterRawInputDevices(rid, 1, sizeof(rid[0]));

并且在应用程序自己的窗口中捕获 WM_INPUT 很好,但在应用程序外部则不行。这可能在应用程序之外还是您必须使用 WH_KEYBOARD 或 WH_KEYBOARD_LL? MSDN 没有明确说明 Raw Input 是否可以全局制作。

编辑:我知道 Hooks,但我想知道您是否也可以使用原始输入来做到这一点!

干杯

最佳答案

查看the MSDN documentation for that stuff ,有一个名为 RIDEV_INPUTSINK 的标志,它被描述为:“如果设置,即使调用者不在前台,这也使调用者能够接收输入。”

我自己并没有弄乱它,但听起来它对于从应用程序窗口之外获取输入很有用。

关于c++ - 原始输入替代键盘 Hook ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4730190/

相关文章:

c++ - 为什么有些共享库以 d.so 而不是 .so 结尾?

c++ - 将 std::vector 传递给数组引用

c++ - Microsoft Visual C++ 连接到 Unix 环境

c++ - 如何知道返回地址在栈上的位置c/c++

java - 如何检查用户输入的内容是否不是java中的字符串

javascript - html5中如何对输入时间采取步骤和限制?

c++ - 如果 child 不需要父类的所有 protected 成员,这是不是糟糕的类设计?

c++ - DeviceIoControl 调用崩溃

c++ - 如何在 C++ 中将 std::string 值传递给 RegSetValueEx()

html - Angular 8 过滤器 : preserve line breaks on text area input