我有一个关于虚拟键挂钩的问题。我想为我的应用程序定义全局快捷方式(RegisterHotkey 不够)。但是,我尝试了两种方法来实现快捷方式:
我注册了一个 WH_KEYBOARD_LL 钩子。我将所有挂钩代码放入一个 DLL 中,它工作正常!但是:当特殊应用程序(例如 CCleaner )具有焦点时,钩子不再起作用!我的申请没有任何结果。我尝试使用 32 位和 64 位 DLL。
我试图通过频繁调用 GetAsyncKeyState 而不是使用钩子来解决问题。此版本也运行良好,直到特殊应用程序(再次 CCleaner)成为焦点。此时 GetAsyncKeyState 为所有键返回 0,即使它们被按下。
有谁知道如何解决这个问题?
顺便说一句,似乎禁用我的钩子的应用程序是用 Delphi 编写的。此外,这些“邪恶”应用程序不会对任何输入做出反应,这意味着对这些应用程序窗口的 ShowWindow 调用没有效果。SetWindowLong 等也是如此。
非常感谢您的回复!