WinGetClientPos

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

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

パラメータ

&OutX, &OutY

型:VarRef

省略したときは、対応する値は保存されません。Otherwise, specify references to the output variables in which to store the X and Y coordinates of the client area's upper left corner.

&OutWidth, &OutHeight

型:VarRef

省略したときは、対応する値は保存されません。Otherwise, specify references to the output variables in which to store the width and height of the client area.

WinTitle、WinText、ExcludeTitle、ExcludeText

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

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

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

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

エラー処理

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

備考

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

If WinTitle is "Program Manager", the function will retrieve the size of the desktop, which is usually the same as the current screen resolution.

最小化されたウィンドウには、位置とサイズが残ります。The values returned in this case may vary depending on OS and configuration, but are usually -32000 for the X and Y coordinates and zero for the width and height.

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

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

WinGetPos, WinMove, ControlGetPos, WinGetTitle, WinGetText, ControlGetText

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

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
}