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 }
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/archive/2013/01/11/2857079.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2011-01-11 【网页表格边框的角设置成圆弧】特效
2011-01-11 【在线运行代码】特效