zoukankan      html  css  js  c++  java
  • C#使用ServiceController控制windows服务

        C#在,使用ServiceController控制类windows服务,添加首次使用前引文:System.ServiceProcess,空间中引用:using System.ServiceProcess。

    以下举例获取本机的全部已安装的Windows服务和应用,然后查找某一应用活服务是否已经安装。


    代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.ServiceProcess;
    
    namespace 推断机器中是否安装了某项服务或者应用
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            ServiceController[] Services = ServiceController.GetServices();
            private bool ExistSth()
            {
                bool exist = false;
                for (int i = 0; i < Services.Length; i++)
                {
                    if (Services[i].DisplayName.ToString() == textBox1.Text.Trim())
                        exist = true;  
                }
                return exist;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                if (ExistSth())
                    MessageBox.Show("已安装");
                else
                    MessageBox.Show("未安装");
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                for (int i = 0; i < Services.Length; i++)
                    listBox1.Items.Add(Services[i].DisplayName.ToString());
            }
        }
    }
    

           如果某一服务名为ServicesName, 编写開始服务,停止服务,重新启动服务的代码例如以下:

    private ServiceController _controller;
    
    private void StopService()
    {
        this._controller = new ServiceController("ServicesName");
        this._controller.Stop();
        this._controller.WaitForStatus(ServiceControllerStatus.Stopped);
        this._controller.Close();
    }
    
    private void StartService()
    {
        this._controller = new ServiceController("ServicesName");
        this._controller.Start();
        this._controller.WaitForStatus(ServiceControllerStatus.Running);
        this._controller.Close();
    }
    
    private void ResetService()
    {
        this._controller = new ServiceController("ServicesName");
        this._controller.Stop();
        this._controller.WaitForStatus(ServiceControllerStatus.Stopped);
        this._controller.Start();
        this._controller.WaitForStatus(ServiceControllerStatus.Running);
        this._controller.Close();
    }




    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    tcpip协议
    Linux特殊文件使用原理
    shell之常用内置变量
    SSM框架CRUD小案例
    个人博客开发笔记
    蓝天筹项目开发记录
    二叉平衡树AVL的插入与删除(java实现)
    二叉搜索树(java实现)
    树的基本操作
    SQL连接
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4732391.html
Copyright © 2011-2022 走看看