Windows10スクリーンセーバーをsikulixの自動プログラムで解除できる?

2019年12月23日

Windows10のPCにスクリーンセーバーがかかっている状態で、sikulixの自動プログラムを動かすとスクリーンセーバーを解除できるか検証してみました。

 

スクリーンセーバー状態ではsikuli実行不可

Windowsでスクリーンセーバー状態になっていると、sikuliのプログラムは上手く動くことができません。

なぜならば、スクリーンセーバーになっていると、通常のデスクトップ画面とは異なる状態になっているからです。

普段なら見つかるアイコンもスクリーンセーバー状態では見つけることができません。

マウス操作のsikulixコマンドで実験

一定時間マウスやキーボード入力がない場合に、スクリーンセーバーが作動するWindows10のパソコンで検証実験を行いました。

sikulixに自動プログラムでマウスを自動操作すると、スクリーンセーバーが解除されるのか試してみました。

  1. スクリーンセーバー稼働時間を5分に設定
  2. タスクスケジューラで10分後に自動プログラムを設定
  3. sikulixでマウスを色々な座標に移動させる自動プログラム

この3つの条件でスクリーンセーバー解除可否をテストしてみました。

その結果、スクリーンセーバーから復帰することはありませんでした。

操作せずにスクリーンセーバーが稼働したあと、5分ほどタスクスケジューラの実行されるのを待ちましたが、残念ながらタスクスケジューラ上でエラーを起こしていました。

 

キーボード入力のsikulixコマンドで実験

さらに、マウスだけでなく、キーボードの自動操作プログラムでもスクリーンセーバーを解除できないか検証してみました。

マウスの場合とほぼ同条件で、キーボード入力を行うsikulixによる自動プログラムに変更してテストしてみました。

ただ、マウス同様にキーボードの自動プログラムでもスクリーンセーバーが解除されることはできませんでした。

 

sikuli用端末ではスクリーンセーバーの解除

今回テストした結果から、スクリーンセーバーが稼働してしまうとsikulixの自動プログラムでは解除できないことが判明しました。

そのため、sikuliで自動処理を行う端末ではスクリーンセーバーの設定は解除しておく必要があります。

あらかじめ、スクリーンセーバーにならないように設定しておけば、スクリーンセーバーによる自動プログラムの失敗を防ぐことができます。

また、スクリーンセーバー以外にも、一定時間操作がないとディスプレイの電源をOFFする機能やユーザーロック機能は無効にしておかねばなりません。

 

まとめ・終わりに

sikulixの自動プログラムでは、スクリーンセーバーから復帰できないことが今回検証テストで明らかになりました。

マウス操作やキーボード操作を行う自動プログラムをスクリーンセーバー中に実行しても、スクリーンセーバーが解除されることはありませんでした。

そのため、sikuliを稼働させるパソコンはスクリーンセーバーやディスプレイの電源がオフになる機能を無効化しておく必要があります。