Keyboard 不使用DLL的键盘挂钩?

Keyboard 不使用DLL的键盘挂钩?,keyboard,hook,global,Keyboard,Hook,Global,我正在尝试创建一个带有一些键绑定(F1-F12)的程序,它将在不对焦时(特别是在游戏运行时)拾取按键 在不使用全局钩子的情况下是否可以检测这些按键?我正在使用的语言(real studio)没有创建DLL的方法(全局钩子需要),另外,我希望它能与mac跨平台(realstudio就是这样做的)。这样,你就可以在windows上钩住没有DLL的键盘:不需要DLL。正如klartex所说,低级键盘/鼠标钩子不需要DLL(与所有其他类型的钩子不同),任何类型的钩子对于您试图完成的任务来说都是多余的 您

我正在尝试创建一个带有一些键绑定(F1-F12)的程序,它将在不对焦时(特别是在游戏运行时)拾取按键


在不使用全局钩子的情况下是否可以检测这些按键?我正在使用的语言(real studio)没有创建DLL的方法(全局钩子需要),另外,我希望它能与mac跨平台(realstudio就是这样做的)。

这样,你就可以在windows上钩住没有DLL的键盘:

不需要DLL。

正如klartex所说,低级键盘/鼠标钩子不需要DLL(与所有其他类型的钩子不同),任何类型的钩子对于您试图完成的任务来说都是多余的

您所需要的只是,它允许您将任何密钥(或密钥组合)注册为系统范围的热键。这满足了您的要求,即即使在应用程序不对焦的情况下也能够拾取按键

另外,
RegisterHotKey
不需要DLL,也不像系统范围的钩子那样“沉重”。挂钩对性能有负面影响;您不应该使用
RegisterHotKey
看到这一点

一旦通过调用函数注册了热键,就可以在应用程序的窗口过程内部进行处理。完成后,请确保调用将应用程序注销为处理该热键

文档中提到了此处的唯一警告:

F12密钥保留供调试器随时使用,因此不应将其注册为热键。即使您没有调试应用程序,F12也是保留的,以防内核模式调试器或即时调试器驻留


但是,如果您正在安装低级键盘挂钩,同样的问题也会出现。F12不是一个很好的候选热键,无论应用程序如何。如果您绝对必须使用,请自担风险。

您使用的是什么编程语言?如果有帮助的话,我可以用一些示例代码更新我的答案。非常感谢您的回复!:)幸运的是,我不需要F12,但谢谢你的提醒。非常感谢。和所有其他回复一样,我知道这是一个老话题,但现在我开始着手“完成”申请。我已经设法使用了register热键,但在我打算使用它的游戏期间它不起作用?有没有任何理由说明它在整个游戏中都不起作用?