Autohotkey Mousemove错误的监视器

时间:2011-07-11 20:00:44

标签: windows automation autohotkey

我正在使用mousegetpos获取当前鼠标位置。我点击其他地方。然后我尝试用mousemove恢复原始位置。鼠标移动到另一台显示器。我尝试了替代方法dllcall,没有成功。如何将鼠标移回原始显示器?

2 个答案:

答案 0 :(得分:2)

如果您发布代码,它会更容易帮助 - 然后人们可以看到您出错的地方。

按下 Ctrl - T 热键时,这对我来说很好用:

CoordMode, Mouse, Screen

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

CoordMode, Mouse, Screen行设置相对于整个屏幕的坐标而不是活动窗口。我已经在我的多显示器设置上进行了测试,鼠标每次都会回到原来的位置,甚至是在显示器上。如果它不适合你,请告诉我。

另外,为了让事情变得更顺畅,您可以在移动鼠标之前将鼠标速度设置为“0”:

SetDefaultMouseSpeed, 0

这使鼠标看起来立即移动,在大多数脚本中看起来更清晰。

答案 1 :(得分:1)

我可以确认加里的答案对于有类似问题的其他人来说是完美的。谢谢,加里!

我自己遇到了类似问题的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