はじめに
こんにちは。今年度から社内PCのキッティングに携わるようになった@Cheeeeeseです。
SetROBOを使ってキッティングしていく中で、記録が出来ない、SetROBO関数のUIコントロール(ControlTypeとControlNameで指定)では動かせないコントロールがありました。
対処法として座標で操作する方法はあるんだけど極力避けたかったので、何かいい方法がないか問い合わせてみたところ、ControlのClass名を指定する方法を教えてもらたので記録しておきます。
環境
- Windows 11 Pro 21H2 (64bit)
- SetROBO for Kitting V1.9.5体験版
状況
▸ サクラエディタのインストールで、「設定をユーザ毎に個別に設定する」のチェックボックスが記録できず、InspectでControlTypeとControlNameを調査したが、これ ↓ では動かない。
PlayLib.Window("サクラエディタ セットアップ").UICheckBox("設定をユーザー毎に個別に管理する").Click();
▸ 他の画面にあるチェックボックスはショートカットキーが設定されているが、このチェックボックスはショートカットキーの指定もない

ControlのClass名を指定して動かす方法
01.対象のコントロールを記録
「設定をユーザ毎に個別に設定する」のチェックボックスの操作を記録します。
02.対象のコントロールのClass名を確認
Inspectを使用し、チェックボックスのClass名を確認します。
「設定をユーザ毎に個別に設定する」のチェックボックスのClass名はTNewCheckListBox
でした。
03.コードの確認
「設定をユーザ毎に個別に設定する」のチェックボックスの記録で取得できている値とClass名が一致しているので、コントロール名はUnknownのまま、取得できたClass名を指定します。
PlayLib.Window("サクラエディタ セットアップ").Unknown("TNewCheckListBox", "TNewCheckListBox&1").Click(1,1);
これで、UIコントロール(ControlTypeとControlNameの指定)では動かせないコントロールを、クラス名の指定で動かすことが出来ます。
備考
ConductorのヘルプでUnknownコントロールに今回の方法が記述されています。
●説明
本ツールで対応していないコントロールを指定します。
とのことなので、UnknownのままClass名を指定してコントロールを操作する方法は、SetROBOのコントロール関数(ButtonとかUI~とか)で対応できないコントロールの場合に使えるみたいです。
最後に
ショートカットキーが設定されていればそっちを使った方が楽なので滅多に使わなそうだけど、いざという時はClass名を使った方が座標とかより確実ですね。
参考にしたサイト
- Conductorヘルプ
- SetROBO