1. 程式人生 > >使用ServiceController組件控制計算機服務

使用ServiceController組件控制計算機服務

ebo alt 計算機名稱 代碼 啟動 geb service machine true

實現效果:  

  技術分享圖片

知識運用:

  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); }
        }    

使用ServiceController組件控制計算機服務