下面是一个使用钩子技术发送鼠标消息的C语言代码示例:

#include <windows.h>

// 钩子函数,用于处理鼠标消息
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode >= 0 && wParam == WM_LBUTTONDOWN) {
        // 发送鼠标左键点击消息给指定坐标点
        HWND hWnd = GetForegroundWindow(); // 获取当前活动窗口句柄
        POINT pt;
        pt.x = 100; // 指定点击的横坐标
        pt.y = 100; // 指定点击的纵坐标
        PostMessage(hWnd, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(pt.x, pt.y));
        PostMessage(hWnd, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(pt.x, pt.y));
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}

int main()
{
    // 安装钩子
    HHOOK hHook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, NULL, 0);
    if (hHook == NULL) {
        printf("Failed to install mouse hook.\n");
        return 1;
    }

    // 启动消息循环
    MSG msg;
    while (GetMessage(&msg, NULL, 0, 0)) {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }

    // 卸载钩子
    UnhookWindowsHookEx(hHook);

    return 0;
}

这段代码使用SetWindowsHookEx函数安装了一个低级别鼠标钩子,当鼠标左键按下时,钩子函数MouseHookProc会被调用。在钩子函数中,我们获取当前活动窗口句柄,并使用PostMessage函数向该窗口发送鼠标左键点击消息(WM_LBUTTONDOWNWM_LBUTTONUP),指定点击的坐标为(100, 100)。最后,通过消息循环处理消息,直到接收到退出消息为止。在退出之前,我们使用UnhookWindowsHookEx函数卸载钩子。

请注意,钩子函数需要在一个Windows消息循环中运行,所以我们在main函数中使用了一个简单的消息循环。如果你的程序已经有一个消息循环,你可以将钩子安装和卸载的代码集成到你的消息循环中

hook钩子技术发送鼠标消息postmessage点击坐标C语言具体代码

原文地址: https://www.cveoy.top/t/topic/iwXy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录