WinGet
提供: AutoHotkey Wiki
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
WinGet[編集]
ウィンドウハンドル(固有のID)や一覧、プロセスIDなどを取得。
WinGet, OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText]
Parameters[編集]
引数名 | 説明 |
---|---|
OutputVar | 結果を格納する変数名。 |
Cmd | 何を取得するかを指定、省略時は ID 。詳しくは下記参照。
|
WinTitle | ウィンドウタイトルなど。 ウィンドウ指定の方法参照。 |
WinText | ウィンドウに含まれるテキスト。 |
ExcludeTitle | 除外タイトル。 |
ExcludeText | 除外テキスト。 |
Cmdに指定するコマンド[編集]
ID | 条件に一致する一番最初(前面)のウィンドウのウィンドウハンドル(固有のID) |
IDLast | 条件に一致する一番最後(背面)のウィンドウのウィンドウハンドル(固有のID) ウィンドウが一つしかマッチしない場合は IDと変わらない。 WinActivateBottomのマッチ動作と同等。 |
PID | 条件に一致する一番最初(前面)のウィンドウのPID(プロセスID)。 Processコマンドで使用する。 |
ProcessName | 条件に一致する一番最初(前面)のウィンドウのプロセスの実行ファイル名。 |
ProcessPath | AHKL [v1.1.01+]: ProcessNameに似ているが実行ファイル名だけでなくフルパスを取得する。 |
Count | 条件に一致するウィンドウの数。 |
List | 条件に一致するウィンドウを全て列挙する。 OutputVarで指定した変数にはウィンドウの数が代入され、 OutputVar番号(1...) というような名前の変数(例:OutputVar1 )に順番にウィンドウハンドルが格納される。存在する全てのウィンドウを列挙するには、WinTitleとWinTextを空にし、ExcludeTitleに存在し得ないタイトルを指定する。 |
ControlList | 条件に一致する最初のウィンドウ上のコントロールのClassNNの一覧を改行区切りで得る。 並び順はコントロールのZ順位の順になっている。 parsing loopでひとつずつ処理できる。 ウィンドウがコントロールを含まない場合は、空になる。 |
ControlListHWND | ControlListと同じだが、ClassNNの代わりにコントロールのウィンドウハンドルの一覧を取得する。 |
MinMax | 条件に一致する一番最初(前面)のウィンドウの状態を取得する。 最小化されていれば -1 、最大化されていれば 1 、通常の状態なら 0 が取得される。
|
Transparent | ウィンドウの不透明度(ウィンドウを透過させるにはWinSetを参照)。 結果は以下の理由で空となる: 1) OSがXPより古い。2) 検索条件にマッチするウィンドウがない。3) ウィンドウが半透明でない。4) (OS挙動による) ウィンドウに透過が設定された後、ウィンドウが最小化された, 最小化から復帰した, サイズ変更されたなど他の条件によるエラー。 それ以外の場合、0~255の数値が格納される。 0 が完全に不可視、 255 が完全に不透明。例:MouseGetPos,,, MouseWin
WinGet, Transparent, Transparent, ahk_id %MouseWin%
|
TransColor | 半透明化されている色。 特定の色が半透明になっているウィンドウでは 0x00CC99 のような形式でその色が取得される。それ以外の場合は空になる。
|
Style ExStyle |
ウィンドウのスタイル、拡張スタイルを8桁の16進数で得る。 スタイルについては、ウィンドウスタイル一覧を参照。 特定のスタイルが含まれているかを調べるには、& 演算子(ビット論理積) か TransformコマンドのBitAndを使う。(調べたいスタイルの数値とのBitAndが0でなければ、含まれている) WinGet, Style, Style, My Window Title
If (Style & 0x8000000)
|
Remarks[編集]
ウィンドウハンドルは16進数の形式で取得される。
取得したハンドルは、ウィンドウ関連コマンドのWinTitleを指定するところで ahk_id %OutputVar%
というようにして使用できる。
ウィンドウID(ハンドル)はウィンドウ毎に常にユニークで、ウィンドウが破棄されるまで有効。 同一種類のウィンドウを再度立ち上げた場合は、新規のIDが発行される。
マウスカーソルの下のウィンドウのハンドルを取得するには、MouseGetPosコマンドを使う。
Related[編集]
WinGetClass, Process, WinGetTitle, MouseGetPos, ControlGet, ControlFocus, GroupAdd
Example(s)[編集]
WinGet, active_id, ID, A WinMaximize, ahk_id %active_id% MsgBox, The active window's ID is "%active_id%".
; This next example will visit all open windows and display info
; about each of them:
WinGet, id, list, , , Program Manager Loop, %id% { StringTrimRight, this_id, id%A_Index%, 0 WinActivate, ahk_id %this_id% WinGetClass, this_class, ahk_id %this_id% WinGetTitle, this_title, ahk_id %this_id% MsgBox, 4, , Visiting All Windows`n%A_Index% of %id%`nahk_id %this_id%`nahk_class %this_class%`n%this_title%`n`nContinue? IfMsgBox, NO, Break }
Example #3: Extract the individual control names from a ControlList: WinGet, ActiveControlList, ControlList, A Loop, Parse, ActiveControlList, `n { MsgBox, 4,, Control #%A_Index% is "%A_LoopField%". Continue? IfMsgBox, No Break } Example #4: Display in real time the active window's control list: #Persistent SetTimer, WatchActiveWindow, 200 Return WatchActiveWindow: WinGet, ControlList, ControlList, A ToolTip, %ControlList% Return