0

次の AutoItコードを検討してください。

WinActivate("Test Window")

Sleep(5000)

ControlClick("Test Window", "", 197128)

私がテストしているウィンドウにボタンがあります。ControlClickを使用してボタンをクリックする簡単なスクリプトを作成しました。コントロール ID を使用してボタンを識別してクリックします (AutoIt ウィンドウの情報を使用してコントロール ID を取得します)。スクリプトは機能します。問題は、テスト ウィンドウが起動されるたびにコントロール ID が変更されることです。その結果、スクリプトは、ウィンドウの新しいインスタンスが起動されるたびにボタンのクリックをシミュレートしません。毎回 controlclick を期待どおりに動作させるにはどうすればよいですか?

4

1 に答える 1

4

動的なコントロール ID を持つコントロールの場合、高度な検出を使用するのが最適です。

ヘルプ ファイルで確認できるように:

ほとんどの Control...() 関数で使用される controlID パラメータとして、特別な説明を使用できます。この説明は、次のプロパティによってコントロールを識別するために使用できます。

例えば、

ControlSend("Untitled - Notepad", "", "[CLASS:Edit; INSTANCE:1]", "This is some text")

または

ControlClick("My Window", "", "[CLASS:Button; TEXT:Finish; INSTANCE:2]")

設定することを忘れないでください:

Opt("WinTitleMatchMode", 4) ;1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase
于 2013-10-07T14:59:52.053 に答える