gpt4 book ai didi

C++ 全局 Hook 。为什么 SetWindowsHookEx 返回 NULL?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:47:49 29 4
gpt4 key购买 nike

我对 SetWindowsHookEx 和 WH_CALLWNDPROC 有一个大问题!当本地钩子(Hook)使用 SetWindowsHookEx 时

HHOOK hook = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, GetModuleHandle(NULL), GetCurrentThreadId());

一切正常,但是当我尝试为其他程序设置全局 Hook 或 Hook 时:

HHOOK hook = SetWindowsHookEx(WH_CALLWNDPROC, CallWndProc, GetModuleHandle(NULL), threadId);

其中 threadId = GetWindowThreadProcessId(window, NULL);
HWND window =::FindWindow(NULL,"Program title");

我在钩子(Hook)中得到 NULL...

我读了很多关于 Hook 的书,但是,我不明白在哪里磨损...我头痛了几天。提前谢谢你,对不起我的英语。

最佳答案

一种方法:

  1. 将您的 CallWndProc 函数放入 DLL 中
  2. 使用包含以下内容的 def 文件导出该函数:

LIBRARY

EXPORTS

CallWndProc
  1. 完成!
  2. (尝试在 Win32 API 失败时始终使用 GetLastError,并在您询问时给出结果)

关于C++ 全局 Hook 。为什么 SetWindowsHookEx 返回 NULL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19776866/

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