【问题标题】:Autohotkey move chrome windowsAutohotkey 移动 chrome 窗口
【发布时间】:2021-04-06 23:39:55
【问题描述】:

当我按下快捷方式时,我想在 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,, 0, 0,

【问题讨论】:

    标签: autohotkey


    【解决方案1】:

    我使用 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://*.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 以优化可靠性。

    【讨论】:

    • 感谢您的帮助。我复制了脚本并更改了一些内容,现在效果很好。
    • @led_pa​​t,如果此解决方案解决了您的问题,您能否将其标记为已接受的答案,以便其他人知道此问题已解决?