gpt4 book ai didi

windows - 为什么 SetWindowsHookEx() 返回 NULL 而 LastError 是 ERROR_HOOK_NOT_INSTALLED

转载 作者:可可西里 更新时间:2023-11-01 10:35:33 24 4
gpt4 key购买 nike

我的代码几年来一直没有报告任何问题。它设置了一个低级键盘钩子(Hook),用户可以使用它来激活应用程序。

m_hKeyboardHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeybHookFn, GetModuleHandle(NULL), 0);

突然有一位用户(这在他之前也适用多年),键盘 Hook 无法正常工作。经过调查,我可以看到 SetWindowsHookEx() 正在返回 NULL,而 GetLastError() 正在返回 0x00000597,即 ERROR_HOOK_NOT_INSTALLED

我找不到关于这意味着什么的任何文档。

为什么会发生这种情况的可能性有哪些?系统安全设置?用户帐户权限?用户使用的是 Windows 7。

我需要一个关于如何使这个错误发生的具体答案,以便我可以解决用户的问题

最佳答案

查看http://blogs.msdn.com/b/alejacma/archive/2010/10/14/global-hooks-getting-lost-on-windows-7.aspx , 好像CPU负载高的话可能会出现。

另一个想法:升级到 64 位 Windows 时是否会中断?我不知道是否适用于 LL Hook ,但你不能在 64 位进程中注入(inject) 32 位 DLL。

最后:如果钩子(Hook)不是从 UAC 提升的进程安装的,LL 钩子(Hook)将不会捕获 UAC 提升的进程中的输入(较低权限级别的进程无法捕获较高权限级别的输入)

关于windows - 为什么 SetWindowsHookEx() 返回 NULL 而 LastError 是 ERROR_HOOK_NOT_INSTALLED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29394841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com