![将鼠标移动到新聚焦窗口中心的软件](https://linux22.com/image/1210964/%E5%B0%86%E9%BC%A0%E6%A0%87%E7%A7%BB%E5%8A%A8%E5%88%B0%E6%96%B0%E8%81%9A%E7%84%A6%E7%AA%97%E5%8F%A3%E4%B8%AD%E5%BF%83%E7%9A%84%E8%BD%AF%E4%BB%B6.png)
我使用的 4 台显示器设置的一个缺陷是,我花费大量时间将鼠标光标同时移动到 2 个或更多屏幕上。
我想要一个适用于 WinXP 的软件,当一个窗口获得焦点时,如果鼠标尚未在该窗口内,则将鼠标移动到该窗口的中心。
有任何想法吗?
答案1
编辑:一种更简单的方法!
(适用于 Windows XP 和 Vista)
AltTab 是一个已编译的 AutoHotKey 脚本,当您在 Windows 中使用 AltTab 热键组合将另一个窗口置于最前面时,它只会将鼠标移动到活动窗口的原点附近
困难的方式:
使用自动热键按 Alt+Tab 将鼠标移动到中心:
~!Tab::
KeyWait, Alt
KeyWait, Tab
WinGetPos, X, Y, width, height, A
center_x:=x+width/2
center_y:=y+height/2
MouseMove,center_x,center_y,
return
你看,蒂亚戈 ;-)
答案2
上面的 AutoHotKey 脚本对我来说不起作用,我不得不做一些小改动。MouseMove 是相对于当前窗口位置而不是屏幕位置的。如果窗口最小化,它也不会总是将鼠标移动到窗口上。我添加了一个 Sleep 语句来解决这个问题。
~!Tab::
KeyWait, Alt
KeyWait, Tab
Sleep 300
WinGetPos,,, width, height,A
center_x:=width/2
center_y:=height/2
MouseMove,center_x,center_y
return
答案3
我让自己反编译@IvoFlipse 的AltTab.zip 脚本,然后稍微调整一下以将鼠标移动到窗口的中心,结果如下:
; After Alt-Tab, move mouse to center of newly activated window.
; https://superuser.com/questions/14868/software-to-move-mouse-to-centre-of
; - updated based on http://www.favessoft.com/AltTab.zip;
; - modified to try to move to center of window.
~!Tab::
KeyWait, Alt
KeyWait, Tab
WinGetPos,x,y,width,height,A
While (x < 0 Or y < 0)
{
Sleep,100
WinGetPos,x,y,width,height,A
IfGreater,A_Index,2,Break
}
MouseMove,width/2,height/2
return
答案4
连接两个屏幕时它不起作用。似乎脚本认为屏幕 #2 上的窗口位于屏幕 #1 上,并将屏幕移动到正确的位置,但位于错误的屏幕上。