ウィンドウを移動するための簡単なAutoHotkeyスクリプトを作成しようとしていますが、正しい画面サイズの値を取得できません。オートホットキーで利用可能な画面領域を取得する
私は画面上の使用可能な領域のサイズを取得しようとしています(通常、フルスクリーン解像度からタスクバーを差し引いたもので、Vistaのサイドバーのような他のドッキングされたウィンドウ)。画面幅を取得するために私が見つけた方法のどちらも機能していないようです。
私が画面サイズを得るために見つけた3つの方法のどれも、私に正しい値を与えていません。ここで私は(そのデフォルトのサイズで、下部のタスクバーにXP上で実行されている)を使用していたテストスクリプトがあります:
#7::
WinMove A,,0,0,A_ScreenWidth,A_ScreenHeight
return
#8::
;SM_CXMAXIMIZED and SM_CYMAXIMIZED
SysGet, ScreenWidth, 61
SysGet, ScreenHeight, 62
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
#9::
;SM_CXFULLSCREEN and SM_CYFULLSCREEN
SysGet, ScreenWidth, 16
SysGet, ScreenHeight, 17
WinMove A,,0,0,ScreenWidth,ScreenHeight
return
#7は、ウィンドウが全体の解像度を取るになりますので、タスクバーに重なっています。
#8は、解像度(ウィンドウの右端がセカンダリモニタに表示される)よりも大きく、高さが少し大きすぎるため、ウィンドウがタスクバー領域と部分的に重なってしまいます。このように見えるのは、エッジのウィンドウ装飾を考慮しない点を除いて正しいことです。
#9は正しい幅を持っているようですが、高さが短すぎます。解像度の高さからタスクバーの高さを差し引いたものの、そこから30ピクセルを差し引いたようです。
#9で使用したものを使用して30の高さを追加することはできますが、それは他の設定で破損するハックのように感じられます。利用可能な画面サイズを適切に取得する方法が必要なようですが、AutoHotkeyで見つけることはできません。参考のため
、これは私がJavaで必要なものを私に与えているようだ:
Toolkit.getDefaultToolkit().getScreenSize();
これらの機能は非常に便利です。ちょうどWindows 7の下でそれらを使用し、彼らは美しく動作します。ありがとう。乾杯! –