让鼠标指针做超跳?

时间:2010-06-16 12:05:08

标签: c# .net-3.5 scripting mouse mouseevent

我运行双显示器设置。

要从监视器1到2(或反之亦然),需要大量不必要的鼠标移动。

我的想法是利用一个额外的鼠标按钮(我有两个)并让鼠标超跳(对星际迷航道歉)从监视器1上的XY坐标到监视器2上的相同XY坐标。

我将如何做到这一点?

可以通过C#完成吗?

3 个答案:

答案 0 :(得分:5)

关于坐标,两个监视器粘在一起作为一个大区域。

使用Screen.AllScreens数组,您可以检查两个屏幕的工作区域,通过设置Cursor.Position,您可以移动鼠标。

答案 1 :(得分:2)

要在C#中执行此操作,我会设置一个系统范围hot key。然后就像deltreme所说的那样,使用Cursor.Position将光标移动到按下该热键所需的位置。

您可以采用的另一种方法是使用AutoHotkeyAutoIt等语言。

以下是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台显示器。