Kai*_*aan 5 c++ keyboard hook winapi input
快速提问 -
我正在阅读关于键盘钩子和一个建议使用Raw Input来做这个,但我没有找到任何它的例子.例如我正在使用
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]));
Run Code Online (Sandbox Code Playgroud)
并且在应用程序自己的窗口中使用WM_INPUT,但不在应用程序之外.这可能在应用程序之外,还是必须使用WH_KEYBOARD或WH_KEYBOARD_LL?MSDN没有说清楚Raw Input是否可以在全球范围内制作.
编辑:我知道Hooks,但我想知道你是否可以用Raw输入做到这一点!
干杯
查看有关该内容的MSDN文档,有一个被调用的标志RIDEV_INPUTSINK,其描述为:"如果设置,这使得调用者即使在调用者不在前台时也能接收输入."
我自己并没有弄乱,但听起来它可能对从应用程序窗口之外获取输入很有用.
Windows 挂钩是一种可以在事件到达应用程序之前拦截事件的机制。过滤器函数(接收事件的函数)根据事件类型进行分类。如果想要附加到 Windows 挂钩,则必须使用 来安装过滤器功能SetWindowsHookEx。我不得不提一下,全局钩子必须位于单独的 dll 文件中。您可以在MSDN中阅读有关钩子的更多信息。