【SetROBO】記録が取れない時の対処法

# はじめに
こんにちは。今年度から社内PCのキッティングに携わるようになった@Cheeeeeseです。
SetROBOを試し始めて1ヶ月程経ちました。（通常業務の合間にいじってるので、なかなか検証が進みませんが...）

1ヶ月試して思ったことは、記録機能があまり優秀じゃないな🤔ってこと。

Windows内の設定はSetROBOのホームページにサンプルコードがあるから参考に出来るんだけど、アプリのインストールとか設定になると、サンプルがないから自分でコーディングする必要があるんだけど、これがなかなか記録取れない画面が多くてコーディングするのに苦戦するんですよね...

ってことで、今回は記録が取れなかった時の対処法を記載します。

# 環境
- Windows 11 Pro 21H2 (64bit)
- SetROBO for Kitting V1.9.5体験版

# 今回やること
うちで導入推奨されているAdobeの「Acrobat Reader」のインストールで、記録が取れないコントロールの操作を自動化します。


「Acrobat Reader」のインストーラーはここから入手。
👉https://get.adobe.com/jp/reader/?promoid=TTGWL47M

# 操作したい画面はこちら
Acrobat Readerはインストーラーを実行すると自動でインストールが開始されます。
インストールが完了するとこの画面が出るので、「Adobe Acrobat Reader DC を起動」のチェックを外して「終了」ボタンをクリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/837a4209-0ef3-78ef-2561-a95d9c5193db.jpeg" width="60%">

# 記録を取ってみると...
![実行02-1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/e2920f76-116b-242b-2df8-035c1c5f875c.gif)

自動でコードの記述はしてくれるんだけど、コントロールの部分がちゃんと取れていません。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/a9768c03-c142-6969-37d3-83fd1f369a85.jpeg" width="80%">

# 手順（記録が取れない時の対処法）
### 01.事前準備
記録が取れない場合、そのコントロールの種類と名前を調べて、修正する必要があります。
コントロールの種類と名前を調べるためには「Inspect」を使うので、まずはこちらをインストール。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/b42b4ad5-9c80-3a2e-a8ed-5ddf779a5079.jpeg" width="10%">

「Inspect」のインストーラーはこちらから入手できます。
👉https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive/

### 02.「Adobe Acrobat Reader DC を起動」の種類と名前を調べる
１）「Inspect」を起動して、「Adobe Acrobat Reader DC を起動」のチェックボックスにフォーカスを当てます。
２）「種類＝ControlType」と「名前＝Name」を確認する。
　　※指定するコントロール名が少しでも違うと動かないので、表示されているNameはコピーする！
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/f852c96c-0f8d-c7fd-4507-2f6631dd2f36.jpeg" width="80%">
これで「Adobe Acrobat Reader DC を起動」のコントロールの種類は「CheckBox」、名前は「Adobe Acrobat Reader DC を起動」と分かります。

### 03.「Adobe Acrobat Reader DC を起動」のコードを修正する
記録された`.Unknown("Internet Explorer_Server", "Internet Explorer_Server").Click(97, 84);`を修正します。
まずは「Unknown」のところをコントロールの種類に修正します。
調べた種類は「CheckBox」だったのですが、記録が取れなかったコントロールの場合、必ず「UI」が付くコントロールの関数を使用しなければいけないみたいなので「UICheckBox」に修正します。
次にコピーした名前を括弧の中に記述します。
最後に操作のところがClickになっているので、ここをチェックを外す操作「Uncheck」に修正します。
```ruby:「Adobe Acrobat Reader DC を起動」のチェックを外すコード
//「Adobe Acrobat Reader DC を起動」のチェックを外す
PlayLib.Window("Adobe Acrobat Reader DC インストーラー").UICheckBox("Adobe Acrobat Reader DC を起動").Uncheck();
```

### 04.「終了」ボタンのコードも同様に修正する
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/b5f74cc4-12d8-9396-0092-b2614079c5f9.jpeg" width="80%">

「終了」ボタンのコントロールの種類「Button」、名前「終了」。

```ruby:「Adobe Acrobat Reader DC を起動」のチェックを外すコード
//「終了」をクリックする
PlayLib.Window("Adobe Acrobat Reader DC インストーラー").UIButton("終了").Click();
```

**記録できなかったコントロールの修正完了！**

### 05.実行
![実行01-1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/cd9c6c60-0fe9-33b3-0517-819a27f66c66.gif)

# 最後に
修正自体は難しくない。
けど、毎回Inspectを起動してコントロールを調べなきゃいけないのって大変。。。
記録機能の改善を求む。。。

# 参考にしたサイト
- [SetROBO入門ガイド](https://www.setrobo.jp/entry_guide/files/SetROBO_EntryGuide_Ver2.4.pdf)
→STEP09記録が取れないコントロールの記述方法について
- [【SetROBO】No.3 操作の記録が取れないところの修正方法 「Unknown」になる場合](https://www.youtube.com/watch?v=Hw4bXm2dJA4&feature=youtu.be)