特定のサービスが実行されているかどうかを確認したいと思います(表示名 - ServiceAがあるとします)。私のプログラムは、サービスがまだ実行中であることを5分ごとにチェックするようにしたい。それがうまくいけば、ループしてさらに5分待ってからもう一度チェックしてください。 ServiceAが停止していることがわかったら、私にメールで私に電子メールを送り、ServiceAの実行を停止してほしい。私は今まで実行しているすべての現在のサービスと実際の表示名をコンソールに戻すことができるコードを以下に示します。私が上に必要なもののために必要なコード/ロジックに関するアイデアは誰でも?Windowsサービスが停止したら私にメールしてください
namespace ServicesChecker
{
class Program
{
static void Main(string[] args)
{
ServiceController[] scServices;
scServices = ServiceController.GetServices();
Console.WriteLine("Services running on the local computer:");
foreach (ServiceController scTemp in scServices)
{
if (scTemp.Status == ServiceControllerStatus.Running)
{
Console.WriteLine();
Console.WriteLine(" Service : {0}", scTemp.ServiceName);
Console.WriteLine(" Display name: {0}", scTemp.DisplayName);
}
}
//Create a Pause....
Console.ReadLine();
}
}
}
チェッカーが実行を停止するとどうなりますか...! –
Windowsはすでにこれを行うことができます。サービスが停止または失敗したときにアクションをトリガーするだけのアプリケーションを作成する必要はありません。 –
@Cody:HoesはWindowsでそうしていますか? – abatishchev