将鼠标移动到新聚焦窗口中心的软件

将鼠标移动到新聚焦窗口中心的软件

我使用的 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 上,并将屏幕移动到正确的位置,但位于错误的屏幕上。

相关内容