要获取GetMessageExtraInfo()函数返回的DWORD值,可以在钩子回调函数中调用该函数,并将返回值存储在变量中,如下所示:

LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    if (nCode >= 0)
    {
        MOUSEHOOKSTRUCT* pMouseHookStruct = (MOUSEHOOKSTRUCT*)lParam;
        DWORD dwExtraInfo = GetMessageExtraInfo();

        // 处理鼠标消息和dwExtraInfo值
        // ...
    }

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

变量dwExtraInfo将包含GetMessageExtraInfo()返回的DWORD值。该值的最高位指示鼠标事件是否由真实鼠标生成。如果该位为0,则该事件由真实鼠标生成;否则,它是由鼠标模拟器或其他程序生成的。您可以使用下面的宏来检查该位:

#define IS_REAL_MOUSE(dwExtraInfo) ((dwExtraInfo & 0x80000000) == 0)

如果该宏返回true,则表示鼠标事件由真实鼠标生成;否则,它是由鼠标模拟器或其他程序生成的。

GetMessageExtraInfo 获取hook的鼠标是否是真实鼠标 或者是调用mouse_event的 如何获取这个DWORO值

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

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