我正在使用SetWindowsHookEx挂钩键盘(idHook = WH_KEYBOARD)。在大多数情况下,客户计算机也运行Unicode打字软件,它也用相同的方法挂钩键盘。那么我如何确保我的应用程序以比其他软件更高优先级或最低优先级挂钩? (在某些情况下,我希望我的软件的优先级高于Unicode Typer,在其他情况下,我希望它以较低的优先级运行)
答案 0 :(得分:2)
挂钩优先级基于挂钩的安装顺序。较新的钩子比旧钩子具有更高的优先级。没有API暴露查询现有钩子的顺序,因此知道钩子是否高于或低于其他钩子的唯一方法是在每个正在运行的进程中绕过SetWindowsHookEx()
本身并跟踪正在调用的进程它
另一种方法是停止使用SetWindowsHookEx()
,至少是高优先级挂钩。请改用RAW Input API。然后,您将直接从键盘本身接收输入事件。但是,如果这是您的目标,则无法使用RAW输入阻止其他进程接收键盘输入。