基本的に、システムの起動からシステムのシャットダウンまでアプリケーションを実行する必要があります。私は次のアプローチを考え出しました。
- MyApp.exeとMyService.exeを作成します
- MyAppはMyServiceをサービスとしてインストールする必要があります
- MyServiceは起動時に実行され、MyAppが実行されているかどうかを定期的にチェックすることになっています。それがそれを開始するよりもそうでない場合。
これが私のサービス用に書いたコードです。
protected override void OnStart(string[] args)
{
while(true)
{
int processesCount =
Process.GetProcessesByName(Settings.Default.MyAppName).Count() +
Process.GetProcessesByName(Settings.Default.MyAppName + ".vshost").Count() +
Process.GetProcessesByName(Settings.Default.MyAppUpdaterName).Count();
if(processesCount==0)
{
//restore
var p = new Process { StartInfo = { FileName = Settings.Default.MyAppName, Arguments = "" } };
p.Start();
}
else
{
}
System.Threading.Thread.Sleep(3000);
}
}
- このプロセスをインストールして、Windows Startで開始するにはどうすればよいですか?
- OnStartメソッドのこの無限ループが良いアイデアかどうかはわかりません。それは...ですか?
- 一般的な考え方は大丈夫ですか?