zoukankan      html  css  js  c++  java
  • ServiceController控制windows服务

    1、引用System.ServiceProcess.dll

    2、引用System.ServiceProcess命名空间

    using System.ServiceProcess;

    3、.声明ServiceController变量

    private ServiceController _controller;

    4、假设服务名为ServicesName, 编写开始服务,停止服务,重启服务的代码如下

    A:开始服务

    1 private void StartService()
    2 {
    3 this._controller = new ServiceController("ServicesName");
    4 try
    5 {
    6 if ((_controller.Status.Equals(ServiceControllerStatus.Stopped)) ||
    7 (_controller.Status.Equals(ServiceControllerStatus.StopPending)))
    8 {
    9 _controller.Start();
    10 }
    11 else
    12 {
    13 _controller.Stop();
    14 }
    15 }
    16 finally
    17 {
    18 this._controller.Refresh();
    19 this._controller.Close();
    20 }
    21 }

    B:停止服务

    1 private void StopService()
    2 {
    3 this._controller = new ServiceController("ServicesName");
    4 try
    5 {
    6 this._controller.Stop();
    7 this._controller.WaitForStatus(ServiceControllerStatus.Stopped);
    8 }
    9 finally
    10 {
    11 this._controller.Refresh();
    12 this._controller.Close();
    13 }
    14 }

    C:重启服务

    1 private void ResetService()
    2 {
    3 this._controller = new ServiceController("ServicesName");
    4 try
    5 {
    6 this._controller.Stop();
    7 this._controller.WaitForStatus(ServiceControllerStatus.Stopped);
    8 this._controller.Start();
    9 this._controller.WaitForStatus(ServiceControllerStatus.Running);
    10 }
    11 finally
    12 {
    13 this._controller.Refresh();
    14 this._controller.Close();
    15 }
    16 }

    D:若已停止则启动反则停止

    1 private void SStopService()
    2 {
    3 this._controller = new ServiceController("ServicesName");
    4 try
    5 {
    6 this._controller.Stop();
    7 this._controller.WaitForStatus(ServiceControllerStatus.Stopped);
    8 this._controller.Start();
    9 this._controller.WaitForStatus(ServiceControllerStatus.Running);
    10 }
    11 finally
    12 {
    13 this._controller.Refresh();
    14 this._controller.Close();
    15 }
    16
    17 }
  • 相关阅读:
    Cookie和Session机制详解
    MySQL数据库MyISAM和InnoDB存储引擎的比较
    MySQL索引背后的数据结构及算法原理
    Qt Meta Object System-元对象系统
    Qt事件处理机制
    学习STL-介绍一下STL
    为什么你有10年经验,但成不了专家?
    关于union的那些事儿
    关于enum的那些事儿
    三子棋局-挑战你的逻辑思维
  • 原文地址:https://www.cnblogs.com/easypass/p/2084769.html
Copyright © 2011-2022 走看看