我想在C#WPF应用程序中使用第二个鼠标,独立于我的主鼠标。
因此,主鼠标控制光标,鼠标按钮触发通常的点击、拖动、鼠标滚轮等事件
我想从第二个鼠标接收鼠标移动和单击事件,但这个事件不应该移动鼠标光标,也不应该由应用程序本身处理,例如启动按钮命令。
最后,我会将鼠标移动X/Y增量和鼠标单击发送到另一个设备来处理它们。
所以像这个
private void Window_MouseMove(object sender, System.Windows.Input.MouseEventArgs e)
{
var delta = oldPosition - e.MouseDevice.GetPosition(this);
DoSomething(delta);
e.Handled = true;
}
我发现了一些指向Microsoft Multipoint SDK的链接,但自2013年以来,它似乎一直处于非活动状态,我找不到任何好的例子。
另一方面,我发现一些应用程序使用Raw Input来识别键盘/鼠标设备,但我不知道如何在不影响鼠标光标和应用程序的情况下收听第二个鼠标的事件。
有人有一个好主意或看点吗?
好的,我尝试了很多不同的解决方案,但其中一个我不满意。
最后我找到了这个不错的解决方案
拦截
符合我的需要。你需要安装一个软件组件,而这个组件似乎在鼠标+键盘和操作系统内核之间的某个地方破解了系统。从现在起,您可以从软件中收听鼠标/键盘事件并对其进行修改。