判断hook的鼠标是否是真实鼠标 或者是调用mouse_event的 如何获取这个DWORO值 GetMessageExtraInfo不行它永远都是0 要判断hook的鼠标是否是真实鼠标或者是调用mouse_event的可以通过检查鼠标消息的dwExtraInfo参数来实现。dwExtraInfo参数是一个DWORD类型的值它包含了鼠标消息的附加信息可以用来判断鼠标消息的来源。如果dwExt
除了使用dwExtraInfo参数来判断鼠标消息的来源,还可以使用GetMessageExtraInfo函数获取当前消息的附加信息。但是,需要注意的是,GetMessageExtraInfo函数只能在当前线程中获取附加信息,并且只能在接收到消息后才能调用,否则返回值为0。
下面是一个示例代码,用于使用GetMessageExtraInfo函数获取当前消息的附加信息,并判断鼠标消息的来源:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
MSG msg;
GetMessage(&msg, nullptr, 0, 0);
DWORD dwExtraInfo = GetMessageExtraInfo();
if (dwExtraInfo == 0)
{
// 鼠标消息来自真实鼠标
}
else
{
// 鼠标消息是通过调用mouse_event()函数模拟的
}
}
return CallNextHookEx(nullptr, nCode, wParam, lParam);
}
在这个示例代码中,我们首先调用GetMessage函数获取当前消息,然后使用GetMessageExtraInfo函数获取当前消息的附加信息。如果附加信息为0,则表示鼠标消息来自真实鼠标;否则,表示鼠标消息是通过调用mouse_event()函数模拟的。
原文地址: https://www.cveoy.top/t/topic/bC8A 著作权归作者所有。请勿转载和采集!