アプリ起動監視アプリ、ProcessChecker(C#)


processcheckercsharp_thmbアプリを監視して、指定したアプリが起動していない場合は起動させたり、定時になると終了させて、定時が過ぎると起動させるアプリをC#で作った。

pc

使い方

Process Name,Path

Process Nameの欄にアプリのプロセス名、Pathの欄にアプリのパスを入力する。これらは必ず同じアプリを指している必要がある。Pathの入力だけでプロセス名を自動取得にしたかったのだが、32bitアプリと64bitアプリ間でのプロセス名取得に問題があったため、現在の仕様にしてある。

Check Interval

Check Intervalの欄には、何秒に一回の割合で起動確認をするかの指定値を入力する。
Resetのチェックもこのタイミングで行っているため、60秒未満推奨。
最大値は24日分(60*60*24*24)。25日以上だと、C#のタイマーでIntervalの指定ができないため。

Reset

Resetの欄には終了させたい時刻(時:分)を入力する。該当時刻で終了する。過ぎると起動する。

Save SettingXML

Save SettingXMLボタンを押下すると、ProcessChecker.exeと同じ階層にsetting.xmlが保存される。次回起動時にはこのファイルを読み込んで設定した値を反映させる。

Active

Activeボタンは監視の実行ボタン。

コンセプト

デジタルサイネージや展示など常駐アプリをAIRで作る場合、連続稼動日数の保障がしにくい。AIRで作るということは、たいていビジュアル的に派手な要素が求められ、新し目の技術を採用しようということになりやすい。稼動実績が少ないまま進めざるを得ない。

連続稼働時間の問題は、実際にはオペレーションで解決することが多い。PC自体を朝起動して、夜終了するようなコンテンツの場合は問題にならないし、CMSを使ってswfで表示する場合は再起動時間を設定できるし、そもそも1時間の連続稼動で十分な場合も多い。

しかし、オペレーションに頼れない場合がやっぱりある。
そこで24時間に一度、終了・再起動させる監視アプリの導入が検討される。

そんな時用に作ってみた。

既存の監視アプリもあるのだが、オリジナルで作ったほうが細かい動作チェック機能の追加が行える。
でも、監視アプリの稼動実績が少ないと結局あまり信頼性があがらないので、監視アプリ自体の動作チェックが必要だ。けど、AIRでStage3DやANE、CrossBridge(Alchemy)を併用して、ユーザーの入力をそこそこ行って、、、の稼動チェックを毎回やることに比べたらはるかに楽なはずだ。

ファイル一式

https://github.com/umhr/ProcessChecker_cs

参考

実行されているすべてのプロセスを取得する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/process/getprocesses.html

プロセスが応答しているかどうかの確認
http://msdn.microsoft.com/ja-jp/library/cc438045(v=vs.71).aspx

オブジェクトの内容をXMLファイルに保存、復元する: .NET Tips: C#, VB.NET
http://dobon.net/vb/dotnet/file/xmlserializer.html