2013-06-21 38 views
0

感謝@Jeff Axelrod爲solution I need a modification to。我無法弄清楚如何改變它,以便它「尊重」我左側顯示器左側的窗口任務欄。我在我的Win 7任務欄中有許多自定義工具欄,所以它有幾英寸寬。下面的代碼使兩個顯示器上的當前窗口最大化,但是擴展窗口的一部分因此位於我的任務欄下方。如何使用AutoHotKey通過左側的Win 7任務欄在雙顯示器上展開窗口?

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

我敢肯定,我失去了一些東西簡單在這裏,但它一直的那些日子裏,一個:-)

這裏是一個屏幕快照,顯示了窗口怎麼是我的任務欄下面。請參閱左上角那裏最明顯的是最大化的窗口下面:

screenshot of window "not respecting" taskbar

+0

屏幕截圖肯定會有很大幫助。 – MCL

+0

好點,謝謝。我會用它更新我的帖子。 – AMM

回答

1

您正在尋找MonitorWorkArea,即MonitorWorkAreaLeft你截圖的樣子。

腳本來獲取所有監控信息:

SysGet, MonitorCount, MonitorCount 
SysGet, MonitorPrimary, MonitorPrimary 
Message .= "Monitor Count:`t" MonitorCount "`nPrimary Monitor:`t" MonitorPrimary 
Loop, %MonitorCount% 
{ 
    SysGet, MonitorName, MonitorName, %A_Index% 
    SysGet, Monitor, Monitor, %A_Index% 
    SysGet, MonitorWorkArea, MonitorWorkArea, %A_Index% 
    Message .= "`n`nMonitor:`t#" A_Index "`nName:`t" MonitorName "`nLeft:`t" MonitorLeft "(" MonitorWorkAreaLeft " work)`nTop:`t" MonitorTop " (" MonitorWorkAreaTop " work)`nRight:`t" MonitorRight " (" MonitorWorkAreaRight " work)`nBottom:`t" MonitorBottom "(" MonitorWorkAreaBottom " work)" 
} 

msgbox % Message 

一旦你找到了正確的顯示器,你想使用,使用座標值:

SysGet, MonitorWorkArea, MonitorWorkArea, 2 
msgbox % MonitorWorkAreaLeft 

編輯

這將獲取值並在每次運行時移動窗口。

SysGet, MonitorWorkArea, MonitorWorkArea, 1 ; Leftmost monitor 
X1 := MonitorWorkAreaLeft 
Y1 := MonitorWorkAreaTop 
SysGet, MonitorWorkArea, MonitorWorkArea, 2 ; Rightmost monitor 
Width := MonitorWorkAreaRight - X1 
Height := MonitorWorkAreaBottom 

WinGetActiveTitle, Title 
WinMove, % Title,, % X1, % Y1, % Width, % Height 
+0

謝謝!因爲我仍然在學習,所以我不確定是否會正確地使用它:是否可以在表達式中以某種方式使用腳本來創建「X1」,「Y1」,「寬度」和「高度「,這樣每次腳本運行它都有最新值? – AMM

+0

腳本每次運行時都會獲取這些值。我想我不會遵循你所問的。 –

+0

對不起!這是我缺乏知識的途徑!我在我的問題中修改了原始腳本,刪除了表達式,然後手動輸入從腳本中獲得的值:'WinMove,%Title%,, 202,0,22998,900'。我想知道是否可以使用腳本爲變量創建值,以便每次按下「+#向上」時,都會首先檢查正確的值。 – AMM

相關問題