c++ windows hook 为什么没有在 windows xp 下运行?

#include <windows.h>
#include <iostream>

HHOOK hMouseHook;

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam) {
    if (nCode == HC_ACTION) {
        switch (wParam) {
            case WM_LBUTTONDOWN:
                std::cout << "Left mouse button clicked" << std::endl;
                break;
            case WM_RBUTTONDOWN:
                std::cout << "Right mouse button clicked" << std::endl;
                break;
            case WM_MOUSEMOVE:
                std::cout << "Mouse moved" << std::endl;
                break;
        }
    }
    return CallNextHookEx(hMouseHook, nCode, wParam, lParam);
}

int main() {
    hMouseHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);

    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    UnhookWindowsHookEx(hMouseHook);

    return 0;
}

这个监听鼠标事件,使用 dev-c++ 在 windows xp 下编译,却没有监听到鼠标,是为什么
windows 11 下正常,windows xp 下会卡住

阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题