使用ServiceController组件控制计算机服务

实现效果:  

  

知识运用:

  ServiceController组件的MachineName属性  //获取或设置服务所驻留的计算机名称

  public string MachineName{get;set;}    //属性值:与此ServiceController实例关联的服务的计算机名称

  ServiceName属性    //获取或设置对此实例引用的服务进行标识的名称

  public string ServiceName{get;set;}    

  Status属性    //获取由此实例引用的服务的状态

  public ServiceControllerStatus Status {get;}  //枚举值之一

  DisplayName属性  //获取或设置服务的友好名称

  public string DisplayName { get;set; }

  CanStop属性    //指示服务在启动后是否可以停止

  public bool CanStop { get; }

  Start Stop方法

实现代码:

       //启动服务
        private void btn_start_Click(object sender, EventArgs e)
        {
            serviceController1.MachineName=".";
            serviceController1.ServiceName="wuauserv";
            if (serviceController1.Status == ServiceControllerStatus.Running)
            {
                MessageBox.Show(
                    serviceController1.DisplayName+"服务正在运行");
                Application.Exit();
            }
            else 
            {
                serviceController1.Start();
                MessageBox.Show(
                    serviceController1.DisplayName+"服务启动成功");
                btn_start.Enabled = false;
                Application.Exit();
            }
        }
        //判断状态
        private void btn_status_Click(object sender, EventArgs e)
        {
            try
            {
                serviceController1.MachineName = ".";
                serviceController1.ServiceName = "wuauserv";
                if (serviceController1.Status == ServiceControllerStatus.Running)
                {
                    MessageBox.Show(serviceController1.DisplayName + "服务正在运行");
                    btn_stop.Enabled = true;
                    btn_status.Enabled = false;
                }
                else
                {
                    MessageBox.Show(serviceController1.DisplayName + "服务已经停止");
                    btn_start.Enabled = true;
                    btn_status.Enabled = false;
                }
            }
            catch (Exception ee) 
            { MessageBox.Show(ee.Message); }
        }
        //停止服务
        private void btn_stop_Click(object sender, EventArgs e)
        {
            try
            {
                serviceController1.MachineName = ".";
                serviceController1.ServiceName = "wuauserv";
                if (serviceController1.CanStop)
                {
                    serviceController1.Stop();
                    MessageBox.Show(serviceController1.DisplayName+"服务已经停止");
                    Application.Exit();
                }
                else
                {
                    MessageBox.Show("服务不可以停止");
                    Application.Exit();
                }
            }
            catch (Exception ee)
            { MessageBox.Show(ee.Message); }
        }    
原文地址:https://www.cnblogs.com/feiyucha/p/10199544.html