Autohotkey Mousemove Неправильный монитор - PullRequest
0 голосов
/ 12 июля 2011

Я использую mousegetpos, чтобы получить текущую позицию мыши. Я нажимаю в другом месте. Затем я пытаюсь восстановить исходное положение мышью. Мышь перемещается на другой монитор. Я попробовал альтернативный метод dllcall, но безуспешно. Как переместить мышь обратно на исходный монитор?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Проще помочь, если вы разместите свой код - тогда люди увидят, где вы идете не так.

Это прекрасно работает при нажатии Ctrl - T горячая клавиша:

CoordMode, Mouse, Screen

^t::
MouseGetPos, x, y
; Do Stuff Here.
MouseMove, x, y
return

Строка CoordMode, Mouse, Screen устанавливает координаты относительно всего экрана, а не активного окна.Я протестировал это на настройке нескольких мониторов, и мышь каждый раз возвращается в исходное положение, даже на мониторах.Дайте мне знать, если это не работает для вас.

Кроме того, просто чтобы сделать вещи немного более плавными, вы можете установить скорость мыши на «0», прежде чем перемещать мышь с помощью:

SetDefaultMouseSpeed, 0

Это заставляет мышь двигаться мгновенно, что выглядит немного чище в большинстве сценариев.

1 голос
/ 17 октября 2012

Я могу подтвердить, что ответ Гэри отлично работает для всех, у кого есть подобные проблемы. Спасибо, Гари!

У меня сама была такая проблема с Breakaway Audio Enhancer ...

Для любого, кто использует или знает Breakaway, вы должны дважды щелкнуть по панели инструментов (на панели задач), чтобы отключить его. То, как Breakaway работает со звуковым конвейером, другие стандартные скрипты отключения AHK не сработают, поэтому перемещение мыши на панель инструментов и двойной щелчок - действительно единственный метод отключения звука. Я хотел, чтобы Caps Lock отключал (или включал) звук и, желательно, чтобы мышь возвращалась туда, где она была изначально.

У меня было множество проблем, пытаясь заставить его работать с несколькими мониторами до публикации Гэри, поэтому вот мое решение для всех, у кого есть подобные проблемы:

Capslock::
    BlockInput On
    CoordMode, Mouse, Screen
    MouseGetPos, xpos, ypos
    MouseClick, left, 42, 965, 2 ;change the co-ordinates to match your system
    MouseMove, xpos, ypos
    SetDefaultMouseSpeed, 0
    BlockInput Off
Return
...