0

@Jeff Axelrod のおかげで、修正が必要なソリューションを提供してくれました。左モニターの左側にある Windows タスクバーを「尊重」するようにこれを変更する方法がわかりません。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

ここで単純なものが欠けていると確信していますが、それは当時の1つでした:-)

これは、ウィンドウがタスクバーの下にある様子を示すスクリーンショットです。最大化されたウィンドウが下にあることが最も明白な左上隅を参照してください。

ウィンドウのスクリーンショット

4

1 に答える 1

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
于 2013-06-21T17:02:41.763 に答える