0

お世話になっております。

分からなくて質問というよりは、自分だけで考えているとなかなか別案が浮かばないので、たとえば皆様ならどうするかご意見をうかがいたく投稿させていただきます。

表題の件について、詳細な条件を以下のとおりとします。(OS:Windows10)

===============

  1. 実行開始から終了までに30分~200分程度かかる、処理時間が一定しないシナリオ【X】がある。
  2. 自動化のため、【X】を1時間おきに実行するタスクを組みたい。
  3. ただし、タスクが走ったときに【X】がまだ実行中であれば、そのタスクは実行せずに終えるものとする。
  4. 【X】では、実行終了時に必ずWinActor自体も終了する(ライブラリ:WinActor終了 を使用)

===============

この条件において、皆様ならどのようにタスクを組まれるか、もしよろしければお聞かせ願えればと思います。

なお、当方では下記のように組んでいます。

  1. シナリオ【X】のショートカットをvbsファイルで出力する。
  2. vbsファイルの内容を以下のように修正する。
    1. WMIの情報を取得し、「WinActor.exe」が起動中かどうかをチェックする。
    2. 「WinActor.exe」が未起動であれば、指定したシナリオを呼び出して実行する。
    3. 「WinActor.exe」が起動中であれば、そのままQuit。
  3. タスクスケジューラで、上記2.のvbsファイルを指定し、1時間おきに実行させる。

これで一応動いてはいますが、今後の引継ぎ等を考えると、vbsを加工することはあまりしないほうがいいかもしれないと思いつつ、さりとて別案も思い浮かばず…といった状態になっています。

わかりづらい点がありましたら申し訳ありません。よろしくお願いします。

この質問は解決済みのためクローズされています。
新しいコメントを投稿

運用としてありとするかは判断によりますが、winactorが二重起動できないことを逆用して、同じようなシナリオを普通にタスクスケジューラで定期的に動かしてしまっています。今のところ問題は起きていません。

コメントありがとうございます。
WinActor、二重稼働できないのですね。
シナリオ実行中に同じシナリオを起動して、元の処理が途中で消えることを懸念してのことだったので、それが起こらないのであれば定時実行で簡単になりそうです。
参考にさせていただきます。