我在计算机上有一个虚拟鼠标驱动程序和一个真实的鼠标。
我正在使用LowLevelMouseProc来捕获整个窗口系统的事件,但我希望不处理来自虚拟鼠标的事件。
由于我需要处理另一个进程的消息,所以无法使用RawInput。
有没有办法知道哪个设备发送了消息?
如果可能,将dwExtraInfo强制应用于真实鼠标设备也可能会对我有所帮助。
我正在使用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);
}