我想获得一个按键信号,而不使用像getasynckeystate这样的钩子或键盘监控功能,这似乎有点过分解决了我的问题。我需要一个可以全局工作的功能(在其创建的窗口之外),比如GetCursorPos,但是按键(按下PageUp键)可以触发一些自定义事件。感谢您提供任何指导。
答案 0 :(得分:0)
我相信DirectInput可以做到这一点。很久以前,我的产品团队有一个语音通信应用程序,无论其他应用程序是否在前台,我们的应用程序都可以捕获“按键通话”键。
如果内存服务器我正确,我们使用DirectInput与专用线程侦听DInput来发信号通知我们的HEVENT句柄。当偶数线程醒来时,它会询问直接输入按下了什么键。如果是我们的热键,我们取消静音麦克风(并在上升事件中将其静音)。
大多数DirectInput文档都已从MSDN中删除。 (由XInput替换)。我不知道xinput是否可以完成同样的事情。但是,如果你能找到一个传统的DirectX SDK软件包(比如DirectX 8 SDK),那么所包含的文档应该包含DirectInput所需的一切。