【发布时间】:2021-05-28 08:20:42
【问题描述】:
我的计算机上有一个虚拟鼠标驱动程序和一个实际鼠标。
我正在使用 LowLevelMouseProc 来捕获窗口范围内的事件,我想不处理来自虚拟鼠标的事件。
我无法使用 RawInput,因为我需要处理另一个进程的消息。
有什么方法可以知道是哪个设备发送了消息?
如果可能的话,在真正的鼠标设备上强制使用 dwExtraInfo 可能会对我有所帮助。
private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
MSLLHOOKSTRUCT hookStruct;
if (nCode < 0)
{
return CallNextHookEx(_hookId, nCode, wParam, lParam);
}
hookStruct = (MSLLHOOKSTRUCT) Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
// I'd like to know from here which mouse has sent the message.
return CallNextHookEx(_hookId, nCode, wParam, lParam);
}
【问题讨论】:
标签: c# setwindowshookex