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