让鼠标指针进行超级跳跃?

3

我使用双显示器。

从第一个显示器切换到第二个(或反之亦然)需要大量不必要的鼠标移动。

我的想法是利用额外的鼠标按钮(我有两个),让鼠标在第一个显示器上的XY坐标超级跳跃(向《星际迷航》致敬),跳跃到第二个显示器上相同的XY坐标。

我该如何实现这一功能?

能否通过C#实现?


1
使用“超级跳跃”这个词来命名标题真的让我对问题产生了兴趣。请仅返回翻译文本。 - RichK
3个回答

5

关于坐标,两个显示器被粘在一起形成一个大区域。

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


2
要在C#中实现这个功能,我会设置一个系统范围的 快捷键。然后,就像deltreme所说的那样,在按下该热键时使用Cursor.Position将光标移动到想要的位置。
另一种方法是使用诸如AutoHotkeyAutoIt之类的语言。
以下是AutoIt中的示例脚本,使光标跳转到主监视器左侧的屏幕:
HotKeySet("{F6}", "Jump")

While True
WEnd

Func Jump()
    MouseMove(-500, 500, 0)
EndFunc

2
您需要使用SetWindowsHookEx()设置一个WH_MOUSE_LL鼠标钩子,以便可以监视鼠标消息,而不管哪个程序具有焦点。示例C#代码可在此处获得。扩展MouseMessages声明以添加生成的额外鼠标消息。中间按钮向下消息是0x207,X按钮是0x20b。您可能需要尝试一下,看看实际生成的消息是什么。
从那里开始,通过分配Cursor.Position属性来跳转光标。Screen类提供了屏幕的位置。不要购买第三个显示器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接