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




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

  • 相关阅读:
    天气预报WebService的使用。
    MS Agent桌面宠物插件浅析
    SECRET文件保险柜 V2.7 统一管理并加密文件
    MSNDuoi聊天机器人 V1.0基于Duoi V2.1的二次开发
    XML操作小结
    Winform鼠标左键点击按钮弹出设置菜单
    截取部分BMP图像
    获取手机的process进程数量和手机的可用内存与总内存大小
    Service一直存在并且能调用服务里面的方法
    判断应用程序是否是用户程序
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4732391.html
Copyright © 2011-2022 走看看