Autohotkey 移动镀铬窗口

问题描述

当我按下快捷方式时,我想在 4 个不同的窗口中打开 4 个不同的 chrome 链接。然后它应该调整 4 个窗口的大小,使一个左上角一个在右上角,一个在左下角,一个在右下角。有人知道我怎么做吗

我试过这个测试代码底部的example1)它应该打开一个新的chrome选项卡,调整它的大小并将其移动到右上角,但它调整了它的大小并将其移动到右上角的距离约为50 像素和所有其他最大化的 chroMetabs 也变得开放,因为 if 语句对所有 chroMetabs 都有效。

有人知道我如何解决这个问题吗?

示例 1

Run,chrome.exe
WinGet,WinStatus,MinMax,ahk_exe chrome.exe
if (WinStatus != 0)
    WinRestore,ahk_exe chrome.exe
WinMove,ahk_exe chrome.exe,

解决方法

我使用了 Windows 方向箭头快捷键来正确地使窗口对齐到角落,因为正如您所指出的,WinMove 在这方面有点问题。

此外,我发现如果在重新排列之前先打开所有窗口,则可以更轻松、更可靠地定位窗口(我使用 hwnd/ahk_id 在打开后跟踪每个窗口)。

最后,通过修改 this,我能够使用 Run 命令在新窗口中打开具有指定 URL 的新 chrome 标签页,如下所示。

RunWait,"c:\program files (x86)\google\chrome\application\chrome.exe" --new-window "https://www.example.com/"

最终脚本:

RunWait,"c:\program files (x86)\google\chrome\application\chrome.exe" --new-window "https://www.google.com/"
topLeft:=WinExist("A")
RunWait,"c:\program files (x86)\google\chrome\application\chrome.exe" --new-window "https://www.example.com/"
topRight:=WinExist("A")
RunWait,"c:\program files (x86)\google\chrome\application\chrome.exe" --new-window "https://www.npr.org/"
bottomRight:=WinExist("A")
RunWait,"c:\program files (x86)\google\chrome\application\chrome.exe" --new-window "https://www.bing.com/"
bottomLeft:=WinExist("A")


;https://stackoverflow.com/questions/23160472/open-chrome-in-windows-from-the-command-line-in-a-new-window
WinActivate,ahk_id %topLeft%
WinMaximize
Sleep 100
Send {Lwin down}{Down}{Left}{Up}{Lwin up}
Send {Esc}
Sleep 1000

WinActivate,ahk_id %topRight%
WinMaximize
Sleep 100
Send {Lwin down}{Down}{Right}{Up}{Lwin up}
Send {Esc}
Sleep 1000

WinActivate,ahk_id %bottomRight%
WinMaximize
Sleep 100
Send {Lwin down}{Down}{Left}{Down}{Lwin up}
Sleep 1000
Send {Esc}

WinActivate,ahk_id %bottomLeft%
WinMaximize
Sleep 100
Send {Lwin down}{Down}{Right}{Down}{Lwin up}
Send {Esc}
Sleep 1000

注意:根据需要在命令之间摆弄或添加 Sleep 以脚本优化可靠性。