コンボボックスの操作を自動化する【AutoIT】
Windowsの操作の自動化ために、ComboBoxを操作する方法の備忘録
以前記事にしたAutoItを使います。Install・設定手順は先にこちらを御覧ください。
AutoItの文法だとこちら
1 2 |
$index = ControlCommand($CALC,"Find String","[CLASS:ComboBox; INSTANCE:1]","FindString",'設定したい値') ControlCommand($CALC, "", "[CLASS:ComboBox; INSTANCE:1]", "SetCurrentSelection", $index) |
AutoItのヘルプ日本語訳を参照するに、コンボボックスコマンドにAutoItのコマンドを送る模様
AutoItXのPowerShellコマンドレット一覧 をみると、おそらくこれ。
Invoke-AU3ControlCommand
Helpはとっても簡単なものしか用意されてませんでした。
1 2 3 4 5 6 7 |
PS C:\> Get-Help Invoke-AU3ControlCommand 名前 Invoke-AU3ControlCommand 構文 Invoke-AU3ControlCommand [-Title] [[-Text] ] [[-Control] ] [-Command] [[-Extra] ] [] Invoke-AU3ControlCommand [-WinHandle] [-ControlHandle] [-Command] [[-Extra] ] [] |
実行してみたところ、下記で動きます。
1 2 3 |
$Value = "設定したい値" $Index = Invoke-AU3ControlCommand -Title $Title -Control "[CLASS:ComboBox; INSTANCE:1]" -Command "FindString" -Extra $Value Invoke-AU3ControlCommand -Title $Title -Control "[CLASS:ComboBox; INSTANCE:1]" -Command "SetCurrentSelection" -Extra $Index |
現在の値をとるには下記のコマンドでできました。
1 |
$Value = Get-AU3ControlText -Title $Title -Control "[CLASS:ComboBox; INSTANCE:1]" |
Send-AU3ControlKey で{down}を送って希望の値になるまでfor文を回すという方法もあります。
環境の言語が変わるとうまく動かなくなるので、あらかじめIndexを調べて設定するほうが頑健(変化に強い)ではないかと思います。
“コンボボックスの操作を自動化する【AutoIT】” に対して1件のコメントがあります。