如何在多台显示器上最大化窗口?

时间:2012-03-22 19:02:48

标签: autohotkey multiple-monitors

使用AutoHotkey,如何绑定热键以跨多个显示器拉伸/最大化/跨越窗口,以便它覆盖两个显示器?

现在,我必须通过用鼠标手动拉伸窗口来完成此操作。我知道有专门的工具可以做到这一点,但我已经运行了一个AutoHotkey脚本,宁愿限制我一直运行的工具数量。

3 个答案:

答案 0 :(得分:19)

我是这样做的,映射Shift + Windows + Up组合以最大化所有显示的窗口。这是对Windows 7的Windows + Up热键的补充,它可以最大化所选窗口。

+#Up::
    WinGetActiveTitle, Title
    WinRestore, %Title%
   SysGet, X1, 76
   SysGet, Y1, 77
   SysGet, Width, 78
   SysGet, Height, 79
   WinMove, %Title%,, X1, Y1, Width, Height
return

答案 1 :(得分:5)

我知道这个帖子有点旧,但这是迄今为止最好的“免费”方式,可以跨越我能够找到的多个显示器。我现在在Windows 8和7 64位系统上使用它,这个宏可能会成为我的默认工具包的一部分:)谢谢堆。

我发帖的原因是,我稍微对其进行了修改以将窗口恢复为单个监视器大小,因为一旦UP宏运行,您将不得不手动将窗口拖回单个子监视器大小,如果需要我已经在shift + windows + down组合中添加了这样做。它可能会更好地记住Windows旧位置,但我不是一个自动键专家,这适用于我的目的...(你也可以改变“A_ScreenWidth,A_ScreenHeight”说800,600更小的工作使用,并调整0,0以使屏幕居中,比如300,200)

使用autohotkey exe编译器,你有一个可移植的exe在另一台电脑上使用。 (即我的办公室计算机将运行exe罚款,但我需要管理员帐户来安装完整的程序:D)

+#Up::
    WinGetActiveTitle, Title
    WinRestore, %Title%
   SysGet, X1, 76
   SysGet, Y1, 77
   SysGet, Width, 78
   SysGet, Height, 79
   WinMove, %Title%,, X1, Y1, Width, Height
return

+#Down::
    WinGetActiveTitle, Title
    WinRestore, %Title%
   WinMove, %Title%,, 0, 0, A_ScreenWidth, A_ScreenHeight
return

答案 2 :(得分:4)

我有两个显示器在工作和家里,我的任务栏在左侧,所以我需要调整这个脚本以确保它正确地移动窗口。

+#Up::
    WinGetActiveTitle, Title
    WinRestore, %Title%
   SysGet, Mon1, MonitorWorkArea, 1 
   SysGet, Mon2, MonitorWorkArea, 2 
   Monitor1Width := Mon1Right - Mon1Left
   Monitor2Width := Mon2Right - Mon2Left
   MonitorsWidth := Monitor1Width + Monitor2Width
   SysGet, Height, 79
   WinMove, %Title%,, %Mon1Left%, %Mon1Top%, %MonitorsWidth%, %Mon2Bottom%
return

+#Down::
    WinGetActiveTitle, Title
    WinRestore, %Title%
   SysGet, Mon2, MonitorWorkArea, 1
   Monitor1Width := Mon2Right - Mon2Left
   WinMove, %Title%,, %Mon2Left%, %Mon2Top%, %Monitor1Width%, %Mon2Bottom%
return