Sikulixの動作する端末が近くに無い場合やクラウド上にある場合は、リモートデスクトップで開発・運用を行うことがあります。
こんにちは!完全自動化研究所の小佐井です。
SikuliXは動作する際、画面イメージを必要としますので、リモートデスクトップを切断した状態では画像を認識できずエラーとなります。
このエラー回避のために毎回、リモートデスクトップでつなぐのは現実的な運用ではないですね。
以下の仕組みを構築すれば、この面倒を回避し、完全自動化できます。
自動化の環境はこちらです
この図をごらんください。
自動化サーバー側にSikuliXが動く端末へのリモートデスクトップ接続設定ファイルを用意し、その設定ファイルを起動するためのバッチファイルを作ります。
運用監視(Hinemosマネージャー)から、このバッチを起動することで、SikuliXが動く端末を自動化サーバー側からリモートデスクトップ接続できますので、画面イメージを使えるようになります。
処理の流れ(シーケンス図)
処理をシーケンス図で書くと、下のようになります。
リモートデスクトップはHinemos Agentによって起動されますので、リモートデスクトップの画面が見えることはなくバックグラウンドで動作します。
自動化サーバー上で作業をしていて、「誤ってマウスを動かしてしまい、SikuliXの動作を邪魔してしまう」ということもありませんので、大変便利です。
リモートデスクトップを切断しておきましょう
リモートデスクトップを切断しておかないと、自動化サーバーの中にリモートデスクトップのインスタンスが残り続けます。
tsdisconというコマンドを使うことで、リモートデスクトップを閉じたのと同じ状態になります。
このコマンドが入ったバッチをロボット用端末内に用意し、それをSikuliXから起動(Runコマンド)することで、切断します。
まとめ
SikuliXを使うとき、スクリーンが絶対に必要となります。
リモートデスクトップを利用して、リモート運用する機会もあることと思います。
そのとき、このページのテクニックが生きてくると思います。
どなたかの助けになれば!
ではでは。
SikuliXの研修講師をお請けしています!
参照【技術者向け】SikuliXで学ぶ、自動化の基礎(研修講師の依頼ページ)

疑問・質問など、お気軽に!
- 投稿タグ
- SikuliX