6

AutoIt を使用してアプリケーションを自動化しようとしていますが、自動化を開始する前にアプリケーション内にコントロールが表示されるまで待つ必要があります。このコントロールは、アプリケーションの起動直後に読み込まれますが、ウィンドウのタイトルは変更されません。コントロールが表示されるのを待つにはどうすればよいですか?

4

1 に答える 1

8

別の GUI のコントロールへのハンドルを取得するには、AutoIt ウィンドウ情報ツールを使用してそのコントロールを識別する必要があります。コントロールのクラス名を取得するには、[コントロール] タブに移動し、[ClassnameNN] の値を調べます。これで、以下の例で行ったように、この値を使用できます。

もちろん"Button1"、AutoIt Info Tool から取得した情報に置き換え、それに応じてウィンドウのタイトルを変更する必要があります。

Global $hCtrl = 0, $Waiting = True

; your GUI loop
While (1)
    If $Waiting And WinExists("Title of OtherApp.exe") Then
        $hCtrl = ControlGetHandle("Title of OtherApp.exe", "", "Button1")
        If $hCtrl Then
            ; we got the handle, so the button is there
            ; now do whatever you need to do
            GUICtrlCreateLabel("Button is there!", 10, 10)
            $Waiting = False
        EndIf
    EndIf

    $iMsg = GUIGetMsg()
    Switch $iMsg
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd
于 2013-01-29T13:22:13.840 に答える