123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace LYFZ.Network.Service
- {
- /// <summary>
- /// 服务操作类
- /// </summary>
- class ServiceOperate
- {
- public ServiceOperate() {
-
- }
- /// <summary>
- /// 启动服务
- /// </summary>
- /// <param name="ServiceName">服务名</param>
- /// <returns></returns>
- public bool StartService(string ServiceName)
- {
- bool bl = false;
- if (ServiceIsExisted(ServiceName))
- {
- System.ServiceProcess.ServiceController s = new System.ServiceProcess.ServiceController(ServiceName);
- if (s.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
- {
- s.Start();
- bl = true;
- //System.Diagnostics.Process.Start("cmd.exe");//启动一个外部应用程序
- }
- }
- return bl;
- }
- /// <summary>
- /// 停止服务
- /// </summary>
- /// <param name="ServiceName">服务名</param>
- /// <returns></returns>
- public bool StopService(string ServiceName)
- {
- bool bl = false;
- if (ServiceIsExisted(ServiceName))
- {
- System.ServiceProcess.ServiceController s = new System.ServiceProcess.ServiceController(ServiceName);
- if (s.Status == System.ServiceProcess.ServiceControllerStatus.Running)
- {
- s.Stop();
- bl = true;
- }
- }
- return bl;
- }
- /// <summary>
- /// 安装服务
- /// </summary>
- /// <param name="ServiceProgram">服务程序名称,如:“WindowsService.exe”</param>
- /// <returns></returns>
- public bool InstallService(string ServiceProgram)
- {
- string[] args = { ServiceProgram };
- return ExecuteServiceCommand(args);
- }
- /// <summary>
- /// 卸载服务
- /// </summary>
- /// <param name="ServiceProgram">服务程序名称,如:“WindowsService.exe”</param>
- /// <returns></returns>
- public bool UninstallService(string ServiceProgram)
- {
- string[] args = { "/u", ServiceProgram };
- return ExecuteServiceCommand(args);
- }
- /// <summary>
- /// 执行服务Install命令
- /// </summary>
- /// <param name="args">参数 args 就是你用 InstallUtil.exe 工具安装时的参数</param>
- /// <returns></returns>
- public bool ExecuteServiceCommand(string[] args)
- {
- try
- {
- System.Configuration.Install.ManagedInstallerClass.InstallHelper(args);
- //参数 args 就是你用 InstallUtil.exe 工具安装时的参数。一般就是一个exe的文件名
- return true;
- }
- catch
- {
- return false;
- }
- }
- /// <summary>
- /// 检查指定的服务是否存在。
- /// </summary>
- /// <param name="serviceName">要查找的服务名字</param>
- /// <returns></returns>
- private bool ServiceIsExisted(string svcName)
- {
- System.ServiceProcess.ServiceController[] services = System.ServiceProcess.ServiceController.GetServices();
- foreach (System.ServiceProcess.ServiceController s in services)
- {
- if (s.ServiceName == svcName)
- {
- return true;
- }
- }
- return false;
- }
- }
- }
|