gpt4 book ai didi

c++ - SetWindowsHookEx 成功但从未调用回调函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:48:51 26 4
gpt4 key购买 nike

动态链接库代码:

LRESULT CALLBACK CBTNewProc(int nCode, WPARAM wParam, LPARAM lParam)
{

std::ofstream file;
file.open("E:\\enter.txt", std::ios::out);
file << nCode;
file.close();

return CallNextHookEx(g_hHook, nCode, wParam, lParam);
}


extern "C" __declspec(dllexport) void installHook()
{
if (g_hHook != NULL){
UnhookWindowsHookEx(g_hHook);
g_hHook = NULL;
}
HINSTANCE hInstance = GetModuleHandle(NULL);
g_hHook = SetWindowsHookEx(WH_CBT, CBTNewProc, NULL, GetCurrentThreadId());
if (g_hHook == NULL)
{
MessageBox(NULL, L"fail!", L"caption", MB_OK);
}
else
{
MessageBox(NULL, L"install success!", L"caption", MB_OK);
}
}

我写了另一个程序来加载这个 dll 并调用了 installHook。显示“安装成功”消息框,但未调用回调函数,在 E 盘下找不到 enter.txt。

我使用的是 Win7 + VS2013。

最佳答案

要在其他进程中设置 Hook ,必须将包含 Hook 过程的 DLL 的 hInstance 传递给 SetWindowsHookEx

您还应该传递零作为线程 ID。

关于c++ - SetWindowsHookEx 成功但从未调用回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33051103/

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