zoukankan      html  css  js  c++  java
  • windows服务

      1 /// <summary>
      2         /// Windows服务类
      3         /// </summary>
      4         /// <summary>
      5             /// 检查服务存在的存在性
      6             /// </summary>
      7             /// <param name=" NameService ">服务名</param>
      8             /// <returns>存在返回 true,否则返回 false;</returns>
      9             public static bool isServiceIsExisted(string NameService)
     10             {
     11                 ServiceController[] services = ServiceController.GetServices();
     12                 foreach (ServiceController s in services)
     13                 {
     14                     if (s.ServiceName.ToLower() == NameService.ToLower())
     15                     {
     16                         return true;
     17                     }
     18                 }
     19                 return false;
     20             }
     21 
     22             /// <summary>
     23             /// 安装Windows服务
     24             /// </summary>
     25             /// <param name="stateSaver">集合</param>
     26             /// <param name="filepath">程序文件路径</param>
     27             public static void InstallmyService(IDictionary stateSaver, string filepath)
     28             {
     29                 AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
     30                 AssemblyInstaller1.UseNewContext = true;
     31                 AssemblyInstaller1.Path = filepath;
     32                 AssemblyInstaller1.Install(stateSaver);
     33                 AssemblyInstaller1.Commit(stateSaver);
     34                 AssemblyInstaller1.Dispose();
     35             }
     36 
     37             /// <summary>
     38             /// 卸载Windows服务
     39             /// </summary>
     40             /// <param name="filepath">程序文件路径</param>
     41             public static void UnInstallmyService(string filepath)
     42             {
     43                 AssemblyInstaller AssemblyInstaller1 = new AssemblyInstaller();
     44                 AssemblyInstaller1.UseNewContext = true;
     45                 AssemblyInstaller1.Path = filepath;
     46                 AssemblyInstaller1.Uninstall(null);
     47                 AssemblyInstaller1.Dispose();
     48             }
     49 
     50             /// <summary>
     51             /// 检查Windows服务是否在运行
     52             /// </summary>
     53             /// <param name="name">程序的服务名</param>
     54             public static bool IsRunning(string name)
     55             {
     56                 bool IsRun = false;
     57                 try
     58                 {
     59                     if (!isServiceIsExisted(name))
     60                     {
     61                         return false;
     62                     }
     63                     ServiceController sc = new ServiceController(name);
     64                     if (sc.Status == ServiceControllerStatus.StartPending ||
     65                         sc.Status == ServiceControllerStatus.Running)
     66                     {
     67                         IsRun = true;
     68                     }
     69                     sc.Close();
     70                 }
     71                 catch
     72                 {
     73                     IsRun = false;
     74                 }
     75                 return IsRun;
     76             }
     77 
     78             /// <summary>
     79             /// 启动Windows服务
     80             /// </summary>
     81             /// <param name="name">程序的服务名</param>
     82             /// <returns>启动成功返回 true,否则返回 false;</returns>
     83             public static bool StarmyService(string name)
     84             {
     85                 ServiceController sc = new ServiceController(name);
     86                 if (sc.Status == ServiceControllerStatus.Stopped || sc.Status == ServiceControllerStatus.StopPending
     87                         )
     88                 {
     89                     sc.Start();
     90                     sc.WaitForStatus(ServiceControllerStatus.Running, new TimeSpan(0, 0, 10));
     91                 }
     92                 else
     93                 {
     94                 }
     95                 sc.Close();
     96                 return true;
     97             }
     98 
     99             /// <summary>
    100             /// 停止Windows服务
    101             /// </summary>
    102             /// <param name="name">程序的服务名</param>
    103             /// <returns>停止成功返回 true,否则返回 false;</returns>
    104             public static bool StopmyService(string name)
    105             {
    106                 ServiceController sc = new ServiceController(name);
    107                 if (sc.Status == ServiceControllerStatus.Running ||
    108                     sc.Status == ServiceControllerStatus.StartPending)
    109                 {
    110                     sc.Stop();
    111                     sc.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10));
    112                 }
    113                 else
    114                 {
    115                 }
    116                 sc.Close();
    117                 return true;
    118             }
    119 
    120             /// <summary>
    121             /// 重启Windows服务
    122             /// </summary>
    123             /// <param name="name">程序的服务名</param>
    124             /// <returns>重启成功返回 true,否则返回 false;</returns>
    125             public static bool RefreshmyService(string name)
    126             {
    127                 return StopmyService(name) && StarmyService(name);
    128             }
  • 相关阅读:
    Crazyflie 2.0 System Architecture
    HDU 4856 Tunnels(BFS+状压DP)
    scp报错:Host key verification failed. REMOTE HOST IDENTIFICATION HAS CHANGED!
    HDU 4175 Class Schedule (暴力+一点dp)
    正則表達式
    匿名訪问之(一)web application级别
    Android UI布局之TableLayout
    cocos2d-x-3.3rc2-003 cocos中的引用计数和自己主动释放池
    一步一步跟我学习hadoop(7)----hadoop连接mysql数据库运行数据读写数据库操作
    hdu Swipe Bo(bfs+状态压缩)错了多次的题
  • 原文地址:https://www.cnblogs.com/tangge/p/2857079.html
Copyright © 2011-2022 走看看