RecKeyでGUIアプリケーションの自動化をする

概要 :
今回、ご紹介するツールは、RecKey (レッキー)というツールです。
このソフトウェアは、ずっと以前からあったんですが、筆者の想像力のなさから、どんな使い方をするのか、今一つ、わからなかりませんでした。
ご存じない方のために、readme.txtの解説を引用しておきます。
RecKey (レッキー)は、キーボードから入力するキーの記録・再生のプログラムです。記録したデータはファイルに保存しておくと、いつでも再生できます。
キー入力の自動化をすることができます。
実際に、この言葉の通りなんですけど、テスト環境のためのものと思いこんでいたところがあって、この便利さに気づいていませんでした。
実際には、このソフトウェアは、GUIも自動テストなどにも用いることができるとは思いますが、自動テストを行うには、若干、機能的に不足した点が多いように思います。
しかし、CUI機能がないGUIアプリケーションを自動化したい場合には、非常に便利です。
今回は、このRecKey (レッキー)というツールの使い方を
RMVB Converterを自動化することで簡単に説明したいと思います。
インストールしてみましょう
インストールは、ダウンロードしたファイルを適当なディレクトリへ解凍するだけです。
初期設定は、解凍したディレクトリの中のRecKey.exeを実行すると初期設定が自動で行われます。
自動化してみましょう
最も簡単なやり方を説明します。
操作を記録してみましょう
- RecKey.exeを実行します。

- 自動化したいアプリケーションを起動します。
ここでは、RMVB Converterを例にしますから、RMVB Converterを起動します。
- 画面の記録ボタンをクリックします。

- RMVB Converterを操作します。
このとき、基本的にマウス操作を使わず、すべてキー操作で行います。
コピー&ペーストなどは使わず、まずは、そのままのキー操作を行います。
※もし、サンプル動画が必要なら、こちらに無料のサンプル動画がありますので、お試しください。
- 操作を終えたら、RecKeyの記録停止ボタンをクリックします。

そして、「名前を付けて保存」ボタンをクリックし、一旦、ファイルに保存します。

このときのファイル名は、何でも良いです。ここでは、testと名前を付けました。
確認してみましょう
先に保存したファイルは、インストール先ディレクトリのDataFolderに保存されています。
<Active "TRMVBForm","RMVB Converter 1.8">
C:\temp\rmbconv\rm_rv40_cook.rm{Tab 2}C:\temp\rmbconv\{Tab 2}{ }{Tab}{Enter 2}
|
おそらく、上記のような記録がテキストファイルとして保存されていると思います。
(ファイル名、ディレクトリ名を除く)
これを、以下の手順で実行してみましょう。
- RecKey.exeを実行します。
- 画面の「ファイルを開く」ボタンをクリックし、先に記録・保存したファイル(例では、test)を開きます。

- 画面の「再生」ボタンをクリックします。

おそらくは、以下の画面で停止したことと思います。

これは、記録された最後の情報が、思ったとおりに記録されていないためです。
{Enter 2}
これは、"Enter"キーを2回押下する意味ですから、"Convert"ボタンと変換が終了して表示されるメッセージボックスの"OK"ボタンをクリックすることを意味しています。
ここでは、以下のような手順を行いたい訳です。
- "Convert"ボタンを押下
- メッセージボックスの表示を待つ
- メッセージボックスが表示されたら、OKボタンを押下
このツールが便利なところは、このような時に、メッセージボックスが表示されている状態で、その画面を待つためのコードを自動で作成してくれるところです。
編集してみましょう
先のキーを記録したファイルは、テキストファイルです。
通常のテキストエディタ(メモ帳など)で簡単に編集することができます。
先に記述したように動作させるためにキーを記録したファイルを編集してみましょう。
- RECKEYHH.EXEを実行します。
インストール先のディレクトリ内にあります。
※RecKey.exeとは違いますので注意してください。

- 左メニュー画面の「エディタ再設定」をクリックします

- 画面右下に「
」のアイコンを設定ファイルを編集しているテキストエディタへドラッグ&ドロップします
エディタに情報が入ったことと思います。

OKボタンをクリックします。
- 左メニュー画面の「ウィンドウの待合せ1」をクリックします

- 画面下の「親のウィンドウのみを取り出す」のチェックを外します
※メッセージボックスが子ウィンドウのため、ここでは、チェックを外します。

- 画面右下に「
」のアイコンを待ちたい画面へドラッグ&ドロップします
ウィンドウタイトル/クラスに情報が入ったことと思います。

- 画面上の「次の設定 >> 」ボタンをクリックします
特に変更するところはありません。

- 画面上の「次の設定 >> 」ボタンをクリックします

- 画面下の「最大待ち時間」にここでは、変換に必要な最大時間を適当に入力します。
ここでは、180(秒)もあれば十分なので、180と入力します。

- 画面上の「エディタへ送信」ボタンをクリックします
1項で指定したテキストエディタに編集された情報が張り付けられたことと思います。
最終的な記録ファイルの内容
<Active "TRMVBForm","RMVB Converter 1.8">
C:\temp\rmbconv\rm_rv40_cook.rm{Tab 2}C:\temp\rmbconv\{Tab 2}{ }{Tab}{Enter}<WaitForWindow "#32770","INFORMATION",180>{Enter}
|
2つの{Enter}の間に
<WaitForWindow "#32770","INFORMATION",180> が加えられました。
これを再度ファイルを読み込んで実行してみてください。
おそらく、思った通りの動作をしてくれると思います。
このツールは、再生している最中に別の画面を操作してしまうと、その画面に対してキー操作を送信してしまいます。
再生している間は、別の作業ができないのが欠点ではありますね。
仮想化などをうまく使うことが肝要です。
このように、簡単にバッチファイルに似たGUI版を作成することができます。
RMVB Converterは、特に、筆者の場合、古い動画がたくさんあったので、どうしようかと思案していたところで、このツールを使えば良いことに思い至りました。
GUIでの作業がパターン化している場合は、一度、試されるのも良いかもしれません。
コメントをどうぞ