AutoItを使用してアプリケーションを自動化しようとしていますが、自動化を開始する前にコントロールがアプリケーション内に現れるのを待つ必要があります。このコントロールは、アプリケーションの開始直後に読み込まれますが、ウィンドウのタイトルは変更されません。コントロールが表示されるまでにはどのように待つのですか?AutoITコントロールエレメントが表示されるのを待つ
答えて
別のGUIのコントロールへのハンドルを取得するには、そのコントロールを識別するためにAutoIt Window Info Toolを使用する必要があります。コントロールのクラス名を取得するには、タブ "Control"に行き、 "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
私はMrtの答えに追加したいと思います。 $hCtrl
は明らかに目に見える
しかし、ここで打ち上げの第一段階は、すでに表示されているとき例えば、私は、瞬間を取得しようとしています
しかし$hCtrl = ControlGetHandle("Title of OtherApp.exe", "", "Static13")
リターンは、アドホックすでにTRUE(<HWnd>0x000...192
などのようなもの)
私のソリューションを追加することである(コントロール) ControlGetHandleへのタイトル:
ControlGetHandle("Title of OtherApp.exe", "Отключено", "Static13")
落とし子がなぜ、なぜ学習者の利益のために説明するのでしょうか? – Mawg
これは動作しませんが、ターゲットインターフェイスは先に移動しました。 – Hippopotamus
- 1. ログインシェルにメッセージが表示されるのを待つ方法
- 2. 位置アラート(システムアラート)が表示されるのを待つ方法
- 3. Android:オブジェクトが表示されるのを待つ
- 4. Webdriver TEXTが表示されるのを待つ
- 5. 要素が表示されるのを待つ方法
- 6. Pyqt5ウィジェットが表示されるまで待つ
- 7. ポップインが表示されるまで待つ方法は?
- 8. webdriverは複数の要素の1つが表示されるのを待つ
- 9. HtmlElementが.NETのWebブラウザーに表示されるのを待つ方法
- 10. 表示が期待通りに表示されない
- 11. 要素がユーザーに表示されるのを待ちます
- 12. Octave:プロットが表示されるのを待ちます
- 13. 1つのdivが表示され、1つのdivが表示されない
- 14. CefSharp要素が表示されるのを待つJavascriptがトリガしないイベントを発生させる
- 15. TinyMCEがロードされるのを待つ
- 16. VrPanoramaViewにコントロールエレメントを追加
- 17. Python Selenium:クラスが表示されるまで待ちます
- 18. Xamarin.Formsマップが非同期で待たされるのを待つ
- 19. 友人の通知に招待状が表示されない
- 20. XcodeでUITestsを待つ方法は、いくつかのビューがタップで表示されるまでですか?
- 21. ドライバが要素が表示されるのを待機しません。
- 22. PHPで期待される例外メッセージが表示されない
- 23. divの背景画像が表示されるまでAngularjsが待機する
- 24. 残りのスクリプトが実行されるのを待つことなく出力を表示する方法Shiny
- 25. XCUITestが表示される可能性のある要素を待ちます
- 26. 待機リストアプリケーションのキューを使用してデータを表示するとエラーが表示される
- 27. Divが期待通りに表示されない
- 28. ポップアップウィンドウが期待通りに表示されない(Android/Xamarin)
- 29. アンドロイドアプリが期待通りに表示されない
- 30. フィルターが期待どおりに表示されない
while($ Waiting)、While(1)。それはwhileループから壊れることはありません。それはその変更でトリックを行いますが、答えに感謝! –
@JohnMosesこれは単なるスニペットであり、完全な解決策ではないので、 'While(1)'は正しくありません。独自のUIを持つAutoItスクリプトは、UIメッセージをキャッチするための無限ループで構成されています。これがスクリプトに表示したかったものです。以下を参照してください:https://www.autoitscript.com/autoit3/docs/guiref/GUIRef_MessageLoopMode.htm – mrt
@JohnMosesもっと明確になるように私の例を拡張しました。 (うまくいけば:)) – mrt