WinGetPos

指定されたウィンドウの位置とサイズを取得します。

WinGetPos &OutX, &OutY, &OutWidth, &OutHeight, WinTitle, WinText, ExcludeTitle, ExcludeText

パラメータ

&OutX, &OutY

型:VarRef

省略したときは、対応する値は保存されません。そうでないときは、ターゲットウィンドウの左上隅のX座標とY座標をピクセル単位で格納する出力変数への参照を指定します。

&OutWidth, &OutHeight

型:VarRef

省略したときは、対応する値は保存されません。そうでないときは、ターゲットウィンドウの幅と高さをピクセル単位で格納する出力変数への参照を指定します。

WinTitle, WinText, ExcludeTitle, ExcludeText

型:文字列整数またはオブジェクト

もしこれらの項目が未設定または省略されたときは、最後に見つかったウィンドウが使用されます。そうでないときは、WinTitleウィンドウタイトルまたはターゲットウィンドウを識別するための他の基準、および/またはWinTextにターゲットウィンドウの単一のテキスト要素からの部分文字列(付属のWindow Spyユーティリティを使えばわかります)を指定します。

ExcludeTitleExcludeTextはウィンドウのタイトルまたはテキストで除外するために使用します。指定の仕方はWinTitleWinTextに似ていますが、ExcludeTitleはウィンドウのタイトル以外の基準(ウィンドウクラスやHWNDなど)を認識しません。

ウィンドウのタイトルとテキストは大文字と小文字を区別します。DetectHiddenWindows関数 と DetectHiddenText関数で変更しない限り、初期設定では非表示ウィンドウは検出されず、非表示テキストは検出されます。SetTitleMatchMode関数で変更しない限り、初期設定ではウィンドウのタイトルはその中のどこかにWinTitleまたはExcludeTitleを含んでいれば一致します。

エラー処理

ウィンドウが見つからないときは、TargetErrorがスローされます。

備考

WinTitle"Program Manager" のときは、この関数はデスクトップのサイズを取得します。通常、これは現在の画面解像度と同じです。

最小化されたウィンドウは、位置とサイズを保持しています。この場合に返す値はOSや設定によりますが、通常はXとY座標が-32000、幅と高さが0です。

マウスが現在カーソルを置いているウィンドウとコントロールの名前を知るには、MouseGetPosを使います。

この関数が返す座標にはウィンドウのタイトルバー、メニュー、ボーダーが含まれるため、OSのバージョンやテーマに依存する可能性があります。異なるシステム間でより一貫した値を取得するには、代わりにWinGetClientPosを使用することを検討してください。

DPI設定が異なる複数のスクリーンを持つシステムでは、OSのDPIスケーリングにより、返される位置やサイズが予想と異なる場合があります。

WinMoveWinGetClientPosControlGetPosWinGetTitleWinGetTextControlGetText

電卓の位置とサイズを取得し、報告します。

WinGetPos &X, &Y, &W, &H, "Calculator"
MsgBox "Calculator is at " X "," Y " and its size is " W "x" H

アクティブウィンドウの位置を取得し、報告します。

WinGetPos &X, &Y,,, "A"
MsgBox "The active window is at " X "," Y

メモ帳が存在する場合は、その位置を検索して報告します。

if WinExist("Untitled - Notepad")
{
    WinGetPos &Xpos, &Ypos ; WinExist関数で見つかったウィンドウが使用されます。
    MsgBox "Notepad is at " Xpos "," Ypos
}