コンボボックスの操作を自動化する【AutoIT】

Windowsの操作の自動化ために、ComboBoxを操作する方法の備忘録

以前記事にしたAutoItを使います。Install・設定手順は先にこちらを御覧ください。

AutoItの文法だとこちら

$index = ControlCommand($CALC,"Find String","[CLASS:ComboBox; INSTANCE:1]","FindString",'設定したい値')
ControlCommand($CALC, "", "[CLASS:ComboBox; INSTANCE:1]", "SetCurrentSelection", $index)

AutoItのヘルプ日本語訳を参照するに、
https://open-shelf.appspot.com/AutoIt3.3.6.1j/html/functions/ControlCommand.htm
コンボボックスコマンドにAutoItのコマンドを送る模様

AutoItXのPowerShellコマンドレット一覧

AutoIt Cmdlets for Windows PowerShell


をみると、おそらくこれ。

Invoke-AU3ControlCommand

Helpはとっても簡単なものしか用意されてませんでした。

PS C:\> Get-Help Invoke-AU3ControlCommand
名前
    Invoke-AU3ControlCommand
構文
    Invoke-AU3ControlCommand [-Title]  [[-Text] ] [[-Control] ] [-Command]  [[-Extra] ]  []
    
    Invoke-AU3ControlCommand [-WinHandle]  [-ControlHandle]  [-Command]  [[-Extra] ]  []

実行してみたところ、下記で動きます。

$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

現在の値をとるには下記のコマンドでできました。

$Value = Get-AU3ControlText -Title $Title -Control "[CLASS:ComboBox; INSTANCE:1]"

Send-AU3ControlKey で{down}を送って希望の値になるまでfor文を回すという方法もあります。
環境の言語が変わるとうまく動かなくなるので、あらかじめIndexを調べて設定するほうが頑健(変化に強い)ではないかと思います。

コンボボックスの操作を自動化する【AutoIT】” に対して1件のコメントがあります。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください