Win32 Global Key Hook / SetWindowsHook / GetAsyncKeyState有时不起作用

时间:2012-08-04 11:58:54

标签: winapi setwindowshookex wh-keyboard-ll

我有一个关于虚拟钥匙挂钩的问题。我想为我的应用程序定义全局快捷方式(RegisterHotkey是不够的)。但是,我尝试了两种方法来实现快捷方式:

  1. 我注册了一个WH_KEYBOARD_LL钩子。我将所有挂钩代码放入DLL中,并且工作正常! 但是:当特殊应用程序(例如CCleaner)有焦点时,钩子不再起作用了!什么都没有到我的申请。我尝试使用32位和64位DLL。

  2. 我试图通过经常调用GetAsyncKeyState而不是使用钩子来解决问题。此版本也很有效,直到特殊应用程序(再次是CCleaner)得到关注。在这一刻,GetAsyncKeyState为所有键返回0,即使按下它们也是如此。

  3. 有谁知道如何解决这个问题?

    顺便说一下,似乎禁用我的钩子的应用程序是用Delphi编写的。这些"邪恶"应用程序不会对任何输入做出反应,这意味着这些应用程序的窗口上的ShowWindow调用确实没有效果。 SetWindowLong等同样如此。

    非常感谢您的回复!

0 个答案:

没有答案