C#对WIindows服务进行操作

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Threading.Tasks;
  6 using System.Collections.Generic;
  7 using System.Windows;
  8 using Microsoft.Win32;
  9 using System.Security;
 10 using System.Diagnostics;
 11 using System.ServiceProcess;
 12 using System.Threading;
 13 using System.Configuration.Install;
 14
 15
 16
 17
 18 namespace UpdateModule
 19 {
 20     public class DetectService
 21     {
 22         /*
 23          * 首先需要添加System.ServiceProcess.dll引用
 24          *
 25          */
 26         //如果Windows服务处于停止状态,启动Windows服务
 27
 28         //static void Main(string[] args)
 29         //{
 30         //    //StopWindowsService("SMService");
 31         //    StartWindowsService("SMService");
 32         //    //UnInstallService();
 33         //    //Process.Start("net stop SMService");
 34         //    //string str = Console.ReadLine();
 35
 36
 37         //}
 38         //开启Windows服务
 39         public static int StartWindowsService(string serviceName)
 40         {
 41             ServiceController[] scs = ServiceController.GetServices();
 42             //0表示未启动状态
 43             int bResult = 0;
 44             foreach (ServiceController sc in scs)
 45             {
 46
 47                 if (sc.DisplayName.Contains(serviceName) && sc.Status == ServiceControllerStatus.Stopped)
 48                 {
 49                         try
 50                         {
 51                             sc.WaitForStatus(ServiceControllerStatus.Stopped, TimeSpan.FromSeconds(30));
 52                             sc.Start();
 53                             //让线程睡眠1秒钟,等待其他服务的加载,不设置则会出错
 54                             Thread.Sleep(1000);
 55                             //1表示启动状态
 56                             bResult = 1;
 57                         }
 58                         catch (Exception ex)
 59                         {
 60                             //2表示启动失败
 61                             bResult = 2;
 62                             throw ex;
 63                         }
 64                 }  //C#启动Windows服务及关闭
 65             }
 66             return bResult;
 67         }
 68
 69         //停止Windows服务
 70         public static bool StopWindowsService(string serviceName)
 71         {
 72             ServiceController[] scs = ServiceController.GetServices();
 73             bool bResult = false;
 74             foreach (ServiceController sc in scs)
 75             {
 76                 if (sc.DisplayName.Contains(serviceName))
 77                 {
 78                     try
 79                     {
 80                         sc.WaitForStatus(ServiceControllerStatus.Running, TimeSpan.FromSeconds(30));
 81                         sc.Stop();
 82                         bResult = true;
 83                     }
 84                     catch (Exception ex)
 85                     {
 86                         bResult = false;
 87                         throw ex;
 88                     }
 89                 }
 90             }
 91             return bResult;
 92         }
 93
 94         //卸载Windows服务
 95         public static void UnInstallService()
 96         {
 97
 98             System.Diagnostics.Process p = new System.Diagnostics.Process();
 99             p.StartInfo.FileName = "cmd.exe";
100             p.StartInfo.UseShellExecute = false;    //是否使用操作系统shell启动
101             p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
102             p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
103             p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
104             p.StartInfo.CreateNoWindow = true;//不显示程序窗口
105             p.Start();//启动程序
106
107             //向cmd窗口发送输入信息
108             p.StandardInput.WriteLine(@"sc delete  SMService" + "&exit");
109             //p.StandardInput.AutoFlush = true;
110             ////获取cmd窗口的输出信息
111             //string output = p.StandardOutput.ReadToEnd();
112             p.WaitForExit();//等待程序执行完退出进程
113             p.Close();
114
115
116             //Console.WriteLine(output);
117             //Console.ReadKey();
118
119         }
120
121     }
122 }
时间: 2024-11-09 16:01:23

C#对WIindows服务进行操作的相关文章

windows服务管理操作

服务程序是windows上重要的一类程序,它们虽然不与用户进行界面交互,但是它们对于系统有着重要的意义.windows上为了管理服务程序提供了一个特别的程序:服务控制管理程序,系统上关于服务控制管理的API基本上都与这个程序打交道.下面通过对服务程序的操作来说明这些API函数 获取系统服务的信息 在windows系统中有专门用来存储服务信息的数据库,而获取系统服务信息主要是通过在这样的数据库中查找.所用到的函数主要有: OpenSCManager:打开数据库 SC_HANDLE WINAPI O

本地无sqlserver服务下操作数据库 之GSQL

作为程序员无论是我们写的各种MIS系统还是游戏都离不开数据的存取操作,正如我们前几天在VS下做的一MIS系统,现在纠结. 如果是C/S或B/S模型就好了,可是需求不是,没办法,顾客是上帝...他们的需求是本地化对数据库就直接进行操作(在不安装sqlserver的情况),弟兄们有解决的办法吗,求支招??? 众里寻他千百度,GSQL却在我内心深处.唉呀,现在觉得有盼头了,问题大概能解决了,接下来就下载了 GSQL_6.5.0.4 下载链接  http://www.powerip.net/GSQL/G

nginx服务相关操作

安装目录 和大多软件一样一般安装在 /usr/local/ 目录下 /usr/local/ 命令man Usage: nginx [-?hvVt] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configur

飞塔防火墙服务注册操作步骤

-------By Abner Huang [前言]在飞塔防火墙提示过保后,我们可能需要第一时间购买新的服务,在购买服务后我们会得到一个 PDF 文档,在文档中包含了对应的服务激活码ID,需要通过support官网进行对应的激活. 1.查询注册信息 ① 首先要在官网里找到此设备的注册信息.浏览器访问飞塔支持官网地址:https://support.fortinet.com .输入帐号和密码(设备注册的时候在官网注册的帐号及密码). ② 登录后点击[管理产品]. ③ 双击需要激活服务的设备序列号.

Linux启用ssh服务相关操作

检查linux系统是否已经安装了ssh服务,有openssh或其他xxxssh,表示有安装ssh服务 命令:rpm -qa | grep ssh 2.启动ssh服务 ssh 服务用命令表示为sshd,所以启动命令为:service sshd start 3.查看端口使用情况 查看所有tcp端口:netstat -tnlp 查看指定端口:netstat -tnlp | grep 22 4.在windows的dos窗口下测试ssh服务是否连接成功,命令:telnet ip地址 端口号

ftp服务通信操作

1.将本地虚拟机网卡设置ip--->2.将虚拟机系统的网卡ip设置--->3.虚拟机设置特定网络模式vm8nat模式: (1) (2) (3) 保证正常互ping 通信, 4.在虚拟机系统中打开vsftp server服务------>见博客站内(FTP服务器--vsftpd的安装和配置) 5.在虚拟机系统中打开ssh server服务------>见博客站内(如何开启SSH SERVER服务) 总结: 即可登录ftp服务,telnet 192.168.2.2 22   (注:保证

记一次在win2008下添加nginx自启动服务的操作

为了在win环境下添加nginx自启服务,我度娘了, 找到在cnblogs下(http://www.cnblogs.com/JayK/p/3429795.html)有篇文章是介绍如何添加nginx到win的自启动服务中. 步骤大概是下载个叫windows service Wrapper的程序->配置该程序 下载地址我找了下,在http://www.veryhuo.com/down/html/82094.html有,原来blog的地址连接已经失效了.后续再挖掘, 发现有个新版https://git

linux 服务的操作

启动和停止服务service 命令用于启动及停止某个服务,例如:service camsd stop    停止 camsd 服务service oracled start   启动 oracled 服务service tomcat4 start   启动 tomcat4 服务CAMS 引入的三个服务间有依赖关系 即 camsd 服务和 tomcat4 服务依赖与oracled 服务,在 oracled 服务启动前不能启动 camsd 服务和 tomcat4 服务:而在 oracled 服务停止

关于windows服务的操作

/// <summary> /// 判断是否安装了某个服务 /// </summary> /// <param name="serviceName"></param> /// <returns></returns> public static bool ISWindowsServiceInstalled(string serviceName) { try { ServiceController[] services