Сделать указатель мыши гипер-прыжком? - PullRequest
3 голосов
/ 16 июня 2010

Я запускаю установку с двумя мониторами.

Для перехода с монитора 1 на 2 (или наоборот) требуется много лишних движений мыши.

Я думал, что нужно использовать дополнительную кнопку мыши (у меня есть две) и сделать гипер-прыжок мыши (извинения за Star Trek) от координат XY на мониторе 1 к тем же координатам XY на мониторе 2.

Как бы я поступил так?

Может ли это быть сделано через C #?

Ответы [ 3 ]

5 голосов
/ 16 июня 2010

Что касается координат, два монитора склеены в одну большую область.

Используя массив Screen.AllScreens, вы можете просматривать рабочие области обоих экранов, а установив Cursor.Position, вы можете перемещать мышь.

2 голосов
/ 16 июня 2010

Вам нужно установить хук мыши WH_MOUSE_LL с помощью SetWindowsHookEx (), чтобы вы могли отслеживать сообщения мыши независимо от того, какая программа имеет фокус.Пример кода C # доступен здесь .Расширьте объявление MouseMessages, чтобы добавить сообщения, созданные для ваших дополнительных сообщений мыши.Средняя кнопка вниз - 0x207, X-кнопка - 0x20b.Возможно, вам придется немного поэкспериментировать, чтобы увидеть, какое сообщение фактически генерируется для вашей мыши.

Оттуда просто переместите курсор, назначив свойство Cursor.Position.Класс Screen дает вам расположение экранов.Не покупайте третий монитор.

2 голосов
/ 16 июня 2010

Чтобы сделать это в C #, я бы установил системную горячую клавишу . Затем, как говорит deltreme, используйте Cursor.Position, чтобы переместить курсор туда, куда вы хотите, когда нажата эта горячая клавиша.

Другой способ, которым вы могли бы воспользоваться, - это использовать язык, например AutoHotkey или AutoIt .

Вот пример скрипта в AutoIt, который заставляет курсор перейти к экрану слева от основного монитора:

HotKeySet("{F6}", "Jump")

While True
WEnd

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