判断hook的鼠标是否是真实鼠标 或者是调用mouse_event的 如何获取这个DWORO值 GetMessageExtraInfo不行它永远都是0 给个例子
要判断hook的鼠标是否是真实鼠标或者是调用mouse_event()的,可以通过检查鼠标消息的dwExtraInfo参数来实现。dwExtraInfo参数是一个DWORD类型的值,它包含了鼠标消息的附加信息,可以用来判断鼠标消息的来源。
如果dwExtraInfo的值为0,则表示鼠标消息来自真实鼠标;如果dwExtraInfo的值不为0,则表示鼠标消息是通过调用mouse_event()函数模拟的。
下面是一个示例代码,用于检查鼠标消息的dwExtraInfo参数,并判断鼠标消息的来源:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == HC_ACTION)
{
MOUSEHOOKSTRUCT* pMouseStruct = (MOUSEHOOKSTRUCT*)lParam;
if (pMouseStruct != nullptr)
{
DWORD dwExtraInfo = pMouseStruct->dwExtraInfo;
if (dwExtraInfo == 0)
{
// 鼠标消息来自真实鼠标
}
else
{
// 鼠标消息是通过调用mouse_event()函数模拟的
}
}
}
return CallNextHookEx(nullptr, nCode, wParam, lParam);
}
在这个示例代码中,我们首先获取了鼠标消息的dwExtraInfo参数,然后判断它是否为0。如果dwExtraInfo为0,则表示鼠标消息来自真实鼠标;否则,表示鼠标消息是通过调用mouse_event()函数模拟的。
原文地址: https://www.cveoy.top/t/topic/bC72 著作权归作者所有。请勿转载和采集!