ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

AutoHotkey以外の自動化ツールを試す。

最近IT 業界では rpa 流行ってるらしいですね。
右も左も rpa らしいですよ。
Auto HOT key でピコピコやっている私が言うのもおかしいですが。

コンピュータの性能上昇で画像認識がだいぶ簡単に出来るようになってきたので、ボタンやアイコンなどの画像で自動化できるようになってきたようです。
コンピュータどころか人間も画像を見て操作してるので、コンピュータの方が人間らしい操作をできるようになったとも言えます。
なぜこんなに rpa が受けてるかって、処理する姿が人間ぽいからではないかと私は考えてます。
Excel の事務処理でもマクロや関数を使うと「ずるい」なんて言われたものですが、手の平返したように rpa ですよ。
マクロの方が早くて確実なんですけど、バックグラウンドで一瞬で処理されると気持ち悪いんですよね。
まあそんなことは置いておきました。
フリーで使えて画像認識で操作するタイプの自動化ツールを探してみました。

sikurixです。

sikulix.com


厳密に言うと rpa ツールではないようですけどね。
テスト自動化ツールという位置づけでいいのかな?
「画像認識に強いので rpa として使いやすいから利用している人もいる」くらいに考えるのが良さそうです。

インストール。

インストール手順は他のサイトに譲っておきます。
実行には Java の実行環境が必須です。

テストプログラム。

試すために最適な課題はないかと探してみました。
以前 Windows 上で Radiko を楽しむための Radiko ガジェットがキーボードショートカットに対応していないので自動化できないとぼやいていましたね。
放送局のアイコンを画像認識させればキーボードに頼らず自動化できるのではないでしょうか。
そこで Radiko ガジェットを再びインストールして画面を確認してみます。

Radiko ガジェットの確認と設計。

Radiko ガジェットの確認。

大雑把に言って、エリア内の全放送局が一覧できるトップページと、放送局を選択するためのメニューページの2段構成です。
上のスクリーンショットはトップページ、下はメニューページです。
起動直後にはトップページを表示しています。

f:id:yasushiito:20190524070328p:plain
f:id:yasushiito:20190524070349p:plain

トップページの動作。

トップページでは、聞きたい放送局のアイコンをクリックすれば、メニューページへと遷移してラジオ受信できます。
トップページから直接放送局クリックするのが一番の近道に思えます。
しかしながら、一覧の中に放送局が入りきらず, スクロールしないと全ての放送局アイコンを確認できません。
初見でマウスホイールは難しいかなと想像したので、クリックだけで乗り切れる操作方法を探してみます。

メニューページの動作。

右上のメニューボタンをクリックすることで直接メニューページに遷移できます。
再生している放送局のアイコンと、放送局切り替えの矢印ボタンが表示されます。
この右向き三角ボタンをクリックすれば任意の放送局を選局できます。
この手順ならクリックだけで操作が完了します。

放送局選択以外に気をつけること。

画像認識で駆動するタイプの自動化ツールではボタンなどの見た目がどう表示されているかを整理しておくことが重要です。
ボタンなどの部品にマウスを合わせたらハイライトされたりボタンが揺れたりエフェクトがかかる時には画像認識に失敗することがあります。
絶対に認識できる瞬間を探すのが利用のコツだと思います。

起動チェック。

Radiko ガジェットが必ず起動しているとは限らないので、起動していなければ起動して、起動していれば最前面にフォーカスします。

ページチェック。

トップページとメニューページのどちらにいるかを判断します。
メニューボタンをクリックすれば、必ずメニューページを表示する仕様のようです。
一般的にはメニューページにいるときはトップページに戻るボタンを表示するものだと思いますが、状態に関わらずメニューページに行ってくれるなら好都合ではあります。

停止されていないか。

再生ボタンと停止ボタンが表示されています。
放送局を選択するたびに再生モードになるので停止ボタンの意味があるのか疑問ですが、再生ボタンを押さないと受信できないケースもあるので対応します。
再生中は再生ボタンがハイライトされるので、ボタンが暗い時には再生ボタンクリックすれば良いでしょう。

実装。

文献が少ないので実装には少々手間取りましたが、それっぽく出来ました。
今回は TBS ラジオを選択するパターンで行ってみます。
もちろん放送局のアイコンを別のものに差し替えれば、他の放送局用のスクリプトにできます。

プログラムはスクリーンショットでお送りします。
画像認識型自動化ツールということもあって、認識処理が画像で表示されるんですね。
こういうところが文献を少なくさせる要因かもしれません。

f:id:yasushiito:20190524070040p:plain

IDE なら画像を確認しながらコードの記述できるので何を操作しようと狙っているのかが分かりやすいですね。

使ってみた感想。

もっさりです。
スキルが未熟なのかもしれませんが動作がもっさりです。
起動時のオーバーヘッドがしんどいです。
少なくともAutoHotkeyのようにテキパキしてません。
確かに自動化できているのですが、機械らしい手の速さは感じられません。
訓練されていれば人間の方が早いと思う。
放送局15局を選択するケースでは50秒以上かかっています。
クリック速度を早める設定がどこかにあるのかな?
多分このプログラムではスクリーン全体を撮影して認識しているので、アプリケーション部分だけの領域に絞ればスピードアップするのかな?