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 }
  • 相关阅读:
    Code基础——2.排序
    设计模式——4.装饰模式
    Shader笔记——1.光照基础
    C#笔记——7.序列化与反序列化
    C#笔记——6.反射与特性
    lua小技巧记录--新建对象时重置元表
    发现的lua小技巧记录--在:方法中使用self的技巧
    lua版pureMVC框架使用分析
    在xlua中使用DoTween动画插件
    Unity工程性能优化学习笔记
  • 原文地址:https://www.cnblogs.com/easypass/p/2084769.html
Copyright © 2011-2022 走看看