1

VS2008では、Windowsサービスが起動状態で実行されているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

2

次のようにサービスに接続できます。

ServiceController sc = new ServiceController("ServiceName");

「ステータス」プロパティを確認することで、サービスが実行されているかどうかを確認できます。Statusは、ServiceControllerStatus型の値(列挙型)を返します。

于 2010-04-22T14:48:07.753 に答える
2

サービスが起動条件で実行されていることを確認する方法の詳細については、このスレッドを参照してください。

最も信頼性の高いカスタムアクションは、UIシーケンスと実行シーケンスの両方でLaunchConditionsアクションの前に挿入されるC++Dll呼び出しです。

ここに1つの例があります:

http://support.microsoft.com/default.aspx?scid=kb;en-us;253683

カスタムアクションコードは、実行中のサービスをチェックし、LaunchConditionsのプロパティを設定できます。

ServiceController.GetServicesメソッドを使用して、ローカルコンピューターで実行されているサービスを一覧表示できます。

ServiceController[] scServices;
scServices = ServiceController.GetServices();

// Display the list of services currently running on this computer.

Console.WriteLine("Services running on the local computer:");
foreach (ServiceController scTemp in scServices)
{
    if (scTemp.Status == ServiceControllerStatus.Running)
    {
        // Write the service name and the display name
        // for each running service.
        Console.WriteLine();
        Console.WriteLine("  Service :        {0}", scTemp.ServiceName);
        Console.WriteLine("    Display name:    {0}", scTemp.DisplayName);
    }
}
于 2010-04-21T22:28:34.813 に答える