【SetROBO】キッティング作業の操作を記録して自動化してみる

# はじめに
こんにちは。今年度から社内PCのキッティングに携わるようになった@Cheeeeeseです。

前回の[SetROBOをインストール](https://qiita.com/Cheeeeese/items/1862d9be932ea613cb11)に続き、今回はSetROBOをダウンロードした際に付属してきたマニュアルを参考に実施した操作の記録方法について記載します！

ちなみに今回はコンピューター名の変更。
キッティングの基本の基本って感じですね。

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

# 参考にしたマニュアルについて
ダウンロードした際に付属してきた「**SetROBO for Kitting 入門ガイド Ver.2.4**」 の「STEP05 コンピュータ名の変更① ～操作の記録～」を参考にしました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/4c4f8372-316f-133b-6b6c-ef04af59023a.png" width="40%"><img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/4d0552f3-0c53-120e-4d5a-8d36699ebe88.png" width="40%">

# 手順
### 01.SetROBOを起動
スタートメニューからSetROBOの**Conductor**を起動します。
SetROBOは、このConductorで自動化シナリオを作成していきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/57279cce-9699-14a8-462a-8fda61206218.png" width="60%">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/726b259b-3227-cb7e-60ea-e03a6114c9f5.png" width="70%">

### 02.プロジェクトを作成
Conductorの[ファイル(F)＞新規作成(N)＞プロジェクト(P)]で新規プロジェクトを作成します。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/d1a948b6-eb4b-4d14-c8fb-51b49d0d5a95.png" width="70%">

**【Conductorの構成は以下のようです】**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/b78046f4-ba30-cabd-fa54-bc5ae75e8542.png" width="70%">
|  No  |  説明  |
| ---- | ---- |
|  ①操作メニュー  |  各メニューや記録・再生・保存などのボタンが表示されている  |
|  ②プロジェクトビュー  |  プロジェクトのアイテムが表示されている<br>Code：自動化シナリオを作成する項目<br>Plan：作成したCodeをまとめて実行ファイルを作成する項目<br>Suite：繰り返し使用する複数のCodeをまとめることのできる項目  |
|  ③アイテム詳細ビュー  |  CodeやPlanなど、プロジェクトビューで選択したアイテムの詳細が表示される  |

### 03.「システムのプロパティ」画面を表示するコードを記述
ショートカットコマンドを使用してシステムのプロパティ画面を表示するコードを記述。

```ruby:システムのプロパティ画面を表示するコード
PlayLib.ProcessStart("sysdm.cpl");
```
「ProcessStart関数」では、操作画面やフォルダの表示、アプリケーションの実行などが出来るそうです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/c08f677b-c743-06cb-e92e-6a6ebf0d0a21.png" width="70%">

### 04.実行して「システムのプロパティ」画面を表示する
▷ボタンをクリックすると、表示しているCodeをConductor上で実行できます。
![07-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/469fc9e2-041f-7596-8b60-c7918bbab5af.png)

※実行した際に「Windows セキュリティの重要な警告」が出たので、「アクセスを許可する(A)」をクリック
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/eb75e3ab-c96d-a769-9abe-2c6b57abdd2a.png" width="70%">

### 04.「コンピューター名変更」の操作を記録
「システムのプロパティ」画面が表示されたら、早速操作を記録していきます！
この赤丸ボタンをクリックすると、記録モードになります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/ee964817-8ac2-848a-5211-283bfb2d1e11.png" width="70%">

【コンピューター名変更の操作】
１．システムのプロパティ画面の「変更」ボタンをクリック
２．コンピューター名/ドメイン名変更画面の「コンピュータ名(C)」に変更するコンピューター名を入力
３．コンピューター名/ドメイン名変更画面の「OK」ボタンをクリック
４．ポップアップの「OK」ボタンをクリック
５．システムのプロパティ画面の「閉じる」ボタンをクリック
６．ポップアップの「後で再起動する(L)」をクリック

**「コンピューター名変更」の操作を記録した様子がこちら**
記録を開始して、システムのプロパティ画面を操作していくと、自動でコードが記述されていきます！
![記録1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/58ffcbbc-f8a4-5bfb-3653-e5892756f6c1.gif)


### 05.記録した際に自動で記述されたコードを確認
余計なコードがあったら削除します。（今回は無かった）
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/f1f17ff4-5683-06ed-b84a-b4c714538b82.png" width="70%">

### 06.記録されたコードを実行
キレイにコードが記録されていたので、このまま実行してみます。
![実行1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2830862/2c36afad-6ff1-0c4a-a602-92b4c2dcbbd3.gif)

**記録した操作の自動化ができました:clap:**

### 今回記録されたコードはこちら
```ruby:SetROBO
using System;
using System.Drawing;
using Arp.Prova.ImageLibrary;
using Arp.Prova.CsvLib;
using Arp.Prova.PlayLib;

// CodeClass
public class CodeClass
{
	public static int CodeStart()
	{
		// セットアップコードの記述
		// システムのプロパティを開く
		PlayLib.ProcessStart("sysdm.cpl");
		
		PlayLib.Window("システムのプロパティ").Button("変更(C)...").Click(21, 15);
		PlayLib.Sleep(5313);
		PlayLib.Window("コンピューター名/ドメイン名の変更").Edit("コンピューター名(C):").Input("PC01");
		PlayLib.Sleep(6094);
		PlayLib.Window("コンピューター名/ドメイン名の変更").Button("OK").Click(56, 12);
		PlayLib.Sleep(11875);
		PlayLib.Window("コンピューター名/ドメイン名の変更").Button("OK").Click(28, 8);
		PlayLib.Sleep(4390);
		PlayLib.Window("システムのプロパティ").Button("閉じる").Click(43, 7);
		PlayLib.Sleep(2281);
		PlayLib.Window("Microsoft Windows").Button("後で再起動する(L)").Click(58, 11);
		
		return 0;
	}
}
```


# 最後に
今回はここまで。
次回は入門ガイドの続きで、記録したコードの修正を行っていきます。

# 参考にしたサイト
- [SetROBO入門ガイド](https://www.setrobo.jp/entry_guide/files/SetROBO_EntryGuide_Ver2.4.pdf)