启动条件 - 检查服务是否正在运行

时间:2010-04-21 20:12:43

标签: c# .net visual-studio-2008 windows-installer launch-condition

在VS2008中,如何在启动条件下检查Windows服务是否正在运行?

2 个答案:

答案 0 :(得分:2)

有关如何在启动条件中检查服务是否正在运行的详细信息,请参阅this主题,

  

最可靠的自定义操作是在之前插入的C ++ Dll调用   UI和执行序列中的LaunchConditions操作。

     

这里有一个例子:

     

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);
    }
}

答案 1 :(得分:2)

您可以按如下方式连接服务:

ServiceController sc = new ServiceController("ServiceName");

您可以通过选中“状态”属性来检查服务是否正在运行。 Status返回ServiceControllerStatus类型的值(枚举)。