我运行双显示器设置。
要从监视器1到2(或反之亦然),需要大量不必要的鼠标移动。
我的想法是利用一个额外的鼠标按钮(我有两个)并让鼠标超跳(对星际迷航道歉)从监视器1上的XY坐标到监视器2上的相同XY坐标。
我将如何做到这一点?
可以通过C#完成吗?
答案 0 :(得分:5)
关于坐标,两个监视器粘在一起作为一个大区域。
使用Screen.AllScreens
数组,您可以检查两个屏幕的工作区域,通过设置Cursor.Position
,您可以移动鼠标。
答案 1 :(得分:2)
要在C#中执行此操作,我会设置一个系统范围hot key。然后就像deltreme所说的那样,使用Cursor.Position将光标移动到按下该热键所需的位置。
您可以采用的另一种方法是使用AutoHotkey或AutoIt等语言。
以下是AutoIt中的示例脚本,使光标跳转到主监视器左侧的屏幕:
HotKeySet("{F6}", "Jump")
While True
WEnd
Func Jump()
MouseMove(-500, 500, 0)
EndFunc
答案 2 :(得分:2)
您需要使用SetWindowsHookEx()设置WH_MOUSE_LL鼠标挂钩,以便您可以监视鼠标消息,无论哪个程序具有焦点。示例C#代码为available here。扩展MouseMessages声明以添加为额外鼠标消息生成的消息。中间按钮消息是0x207,X按钮是0x20b。您可能需要进行一些实验以查看实际为鼠标生成的消息。
从那里,只需通过指定Cursor.Position属性来跳转光标。 Screen类为您提供屏幕的位置。不要买第3台显示器。