当前位置:编程学习 > C#/ASP.NET >>

C#Windows服务:一些方法(启动、停止等)

前面讲述了如何创建和安装服务(创建windows服务),下面把启动、停止、判断是否启动的方法也写一下。
[csharp]  
/// <summary>  
 /// 判断是否安装了某个服务  
 /// </summary>  
 /// <param name="serviceName"></param>  
 /// <returns></returns>  
 public static bool ISWindowsServiceInstalled(string serviceName)  
 {  
     try  
     {  
         ServiceController[] services = ServiceController.GetServices();  
  
  
         foreach (ServiceController service in services)  
         {  
             if (service.ServiceName == serviceName)  
             {  
                 return true;  
             }  
         }  
  
  
         return false;  
     }  
     catch  
     { return false; }  
 }  
 
[csharp 
/// <summary>  
     /// 启动某个服务  
     /// </summary>  
     /// <param name="serviceName"></param>  
     public static void StartService(string serviceName)  
     {  
         try  
         {  
             ServiceController[] services = ServiceController.GetServices();  
  
  
             foreach (ServiceController service in services)  
             {  
                 if (service.ServiceName == serviceName)  
                 {  
                     service.Start();  
  
  
                     service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 30));  
                 }  
             }  
         }  
         catch { }  
     }  
 
[csharp] 
/// <summary>  
        /// 停止某个服务  
        /// </summary>  
        /// <param name="serviceName"></param>  
        public static void StopService(string serviceName)  
        {  
            try  
            {  
                ServiceController[] services = ServiceController.GetServices();  
  
  
                foreach (ServiceController service in services)  
                {  
                    if (service.ServiceName == serviceName)  
                    {  
                        service.Stop();  
  
  
                        service.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 30));  
                    }  
                }  
            }  
            catch { }  
        }  
 
[csharp] 
/// <summary>  
 /// 判断某个服务是否启动  
 /// </summary>  
 /// <param name="serviceName"></param>  
 public static bool ISStart(string serviceName)  
 {  
     bool result = true;  
  
  
     try  
     {  
         ServiceController[] services = ServiceController.GetServices();  
  
  
         foreach (ServiceController service in services)  
         {  
             if (service.ServiceName == serviceName)  
             {  
                 if ((service.Status == ServiceControllerStatus.Stopped)  
                     || (service.Status == ServiceControllerStatus.StopPending))  
                 {  
                     result = false;  
                 }  
             }  
         }  
     }  
     catch { }  
  
  
     return result;  
 }  
 
 
 
 
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,