2012-03-22 27 views
11

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

现在,我必须通过用鼠标手动拉伸窗户来做到这一点。我知道有这样的专用工具,但我已经运行了一个AutoHotkey脚本,并且会限制我继续运行的工具的数量。

回答

17

下面是我如何做到的,将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

这些神奇的76,77,78,79值是什么? – kevinf 2017-09-01 17:28:47

+0

要使用Windows VNC客户端进行此操作,请设置 - >输入并取消选中“将特殊键直接传递给VNC服务器” – stevesliva 2017-09-18 15:34:03

5

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

而我发布的原因是,我稍微修改了它以将窗口恢复为单个显示器大小,因为一旦UP宏运行,您将不得不手动将窗口拖回单个子窗口 - 如果需要,监视器大小。我已经在shift + windows + down组合框中添加了这个功能。它可能会更好地记住Windows的旧位置,但我不是一个autohotkey专家,并且这适用于我的目的......(您也可以将“A_ScreenWidth,A_ScreenHeight”更改为800,600来表示更小的工作与,并调整0,0中心屏幕,说300,200)

使用autohotkey EXE编译器,你有一个可移植的EXE在另一台PC上使用。 (即我的办公室的电脑将运行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 
3

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

+#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