3ステップでできる!SikuliXをスケジュール実行する方法

3ステップでできる!SikuliXをスケジュール実行する方法

SikuliXをスケジュール実行する方法

定型業務の中には日次、週次など定期的に行われるものがたくさんあります。そのような業務を自動化したときに怖いのは実行を忘れることでしょう。しかし、自分で自動化プログラムを実行することなく、決まった日時に自動起動できたら忘れる心配はありません。

本記事では、Windowsのタスクスケジューラを使い、SikuliXのプログラムを指定した時間に実行する方法をご紹介します。3ステップで簡単に実現可能なので、試してみてください。

※本記事ではWindows10、SikuliX 1.1.4を使用しています。
※作成するファイルは全て「C:\work」フォルダに保存するものとします。

【Step1】実行したいSikuliXプログラムを構築する

まずは、実行したいSikuliXプログラムを構築しましょう。開発画面上でプログラムを作成し、保存してください。

今回は例として、ポップアップを表示するだけのプログラムを作成し「test」という名前で保存しました。プログラムを実行すると、ポップアップが表示されます。

作成したプログラム
SikuliXポップアップ
プログラムの実行

【Step2】SikuliX実行バッチを作成する

Step2では、プログラムを実行するためのファイル(batファイル)を作成します。Step1では作成したプログラムを開発画面上で実行しましたが、batファイルをダブルクリックするだけでプログラムを実行できるようになります。

テキストエディタなどで新しく「test.bat」というファイルを作成してください。その中にSikuliXプログラムを起動するコマンドを記述し、保存します。

call java -jar [sikulix.jarファイルのパス] -r C:\work\test.sikuli

test.batをダブルクリックしてみましょう。SikuliXプログラムが起動し、ポップアップが表示されます。

batからSikuliXを実行

【Step3】タスクスケジューラに登録する

Step2で作成したbatファイルをタスクスケジューラに登録することで、SikuliXプログラムをスケジュール管理できます。

まずは、タスクスケジューラを開きましょう。タスクバーの検索ボックスで「タスクスケジューラ」と検索します。

タスクスケジューラを開く

タスクスケジューラを開いたら「タスク スケジューラ ライブラリ」を右クリックし、「基本タスクの作成」を選択します。

基本タスクの作成(タスクスケジューラ)

タスク作成ウィザードが表示されるので、順番に入力します。自分でわかりやすい名前と説明を入力して「次へ」をクリックしてください。

タスクの基本情報入力(タスクスケジューラ)

次はトリガーの選択です。プログラムの実行頻度を設定することができます。ここではテストのため「1回限り」を選択します。「毎日」や「毎週」を選択することで、定期実行も可能です。

タスクの実行頻度を設定(タスクスケジューラ)

プログラムの実行日時を指定し、「次へ」をクリックします。

タスクの実行日時を指定(タスクスケジューラ)

「プログラムの開始」にチェックがついていることを確認し、「次へ」をクリックします。

タスク操作の選択(タスクスケジューラ)

実行するプログラムを設定する画面が表示されます。「参照」ボタンをクリックし、Step2で作成したbatファイルを選択してください。オプションは空白のままで大丈夫です。

タスク実行プログラムの指定(タスクスケジューラ)

最後に設定したトリガーや操作に間違いがないか確認し、「完了」をクリックして登録します。設定した時間でSikuliXプログラムが起動し、ポップアップが表示されれば成功です。

タスク設定確認画面(タスクスケジューラ)

スケジュール実行を行う上での注意点

SikuliXはマウス操作やクリック処理などを自動化するので、SikuliXプログラムが動作している間は基本的にPCを操作できない点に注意してください。別の業務中にSikuliXプログラムがスケジュール起動すると作業の妨げになります。

よって、SikuliXプログラムを自動起動する場合は、以下のようなポップアップを表示し、「OK」がクリックされたときに自動化処理を開始するなどの工夫をしましょう。

SikuliXでポップアップによる確認

ポップアップを使った実行タイミング制御の例

answer = popAsk(u"〇〇プログラムを実行しますか?\n※プログラムを実行中はパソコンの操作を中断してください。", u"SikuliX")
if answer:
    # 自動化処理実行
else:
    popup(u"プログラムの実行を中断しました。")
    exit()

まとめ

SikuliXはタスクスケジューラを使うことで、プログラムをスケジュール実行することができます。スケジュール管理を行えば、プログラムの実行忘れを防げます。

しかし、SikuliXプログラムが動作している間は基本的にPCを操作できないことに注意してください。勝手にパソコンが動いて困らないように、ポップアップを表示してから実行するなどの工夫が必要になります。