2012-05-24 19 views
6

特定のタイトルまたはクラスIDを持つウィンドウが表示されたときにその中に領域を描画するAutoHotkeyスクリプトを作成しています。問題は、複数のウィンドウが表示されることがあり、すべてが同じタイトルとクラスIDを持つことがあるということです。その場合、私のスクリプトはそれらをすべて検出することができず、アクティブウィンドウ内の領域のみを描画します。Autohotkey:特定のタイトルのウィンドウのリストを取得する

タイトルまたはクラスIDと一致するすべてのウィンドウのハンドルのリストを取得することはできますか、またはAHKのすべてのものを循環する他の方法でも可能ですか? listコマンドを使用して、おかげで

答えて

5

WinGetは、ハンドルの配列を生成します

Winget, id, list, MyTitleその後、ヘルプファイルからそれらをループ、およびプロセス...

; Example #2: This will visit all windows on the entire system and display info about each of them: 
WinGet, id, list,,, Program Manager 
Loop, %id% 
{ 
    this_id := id%A_Index% 
    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 
} 
関連する問題