WinGetClientPos

指定されたウィンドウのクライアント領域の位置と大きさを取得します。

WinGetClientPos &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がスローされます。

備考

クライアント領域はウィンドウの一部で、コントロールを含むことができます。ウィンドウのタイトルバー、メニュー(標準のものがある場合)、ボーダーは除外されます。クライアント領域の位置とサイズは、WinGetPosが返す値よりもOSのバージョンやテーマに依存しません。

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

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

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

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

WinGetPosWinMoveControlGetPosWinGetTitleWinGetTextControlGetText

電卓のクライアント領域の位置とサイズを取得して報告します。

WinGetClientPos &X, &Y, &W, &H, "Calculator"
MsgBox "Calculator's client area is at " X "," Y " and its size is " W "x" H

アクティブウィンドウのクライアント領域の位置を取得して報告します。

WinGetClientPos &X, &Y,,, "A"
MsgBox "The active window's client area is at " X "," Y

メモ帳が存在するときは、そのクライアント領域の位置を取得して報告します。

if WinExist("Untitled - Notepad")
{
    WinGetClientPos &Xpos, &Ypos ;  WinExist関数で見つかったウィンドウを使用します。
    MsgBox "Notepad's client area is at " Xpos "," Ypos
}