• ServiceController1


    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.Diagnostics;
    using System.Collections;
    
    ///System.ServiceProcess.dll
    using System.ServiceProcess;
    //serviceController1 控件
    
    namespace TEST
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private Hashtable ht = new Hashtable();
            private string name;
            private void Form1_Load(object sender, EventArgs e)
            {
                LoadServices();
            }
    
            private void LoadServices()
            {
                ht.Clear();
                this.lvServices.Items.Clear();
                ServiceController[] sc = ServiceController.GetServices();
                foreach (ServiceController item in sc)
                {
                    ListViewItem lviServices = this.lvServices.Items.Add(item.DisplayName);
                    lviServices.SubItems.Add(item.ServiceName.ToString());
                    lviServices.SubItems.Add(item.Status.ToString());
                    lviServices.SubItems.Add(item.ServiceType.ToString());
                    //
                    ht.Add(item.DisplayName, item);
                }
            }
    
            private void SelectProcess()
            {
                if (this.lvServices.SelectedItems.Count != 1)
                    return;
                name = this.lvServices.SelectedItems[0].SubItems[0].Text;
                serviceController1 = ht[name] as ServiceController;
    
                // 如果当前状态是Stopped,就应该允许用户执行开始服务
                this.btnStart.Enabled = (serviceController1.Status == ServiceControllerStatus.Stopped);
                //如果当前状态不是Stopped并且系统允许停止服务,就应该允许用户执 行停止服务
                this.btnStop.Enabled = (serviceController1.CanStop && (!(serviceController1.Status == ServiceControllerStatus.Stopped)));
                //如果当前状态不是Paused并且系统允许暂停恢复服务,就应该允许用户执行暂停服务
                this.btnPause.Enabled = (serviceController1.CanPauseAndContinue && (!(serviceController1.Status == ServiceControllerStatus.Paused)));
                // 如果当前状态是Paused,就应该允许用户执行恢复服务
                this.btnResume.Enabled = (serviceController1.Status == ServiceControllerStatus.Paused);
            }
    
            private void btnStart_Click(object sender, EventArgs e)
            {
                this.serviceController1.Start();
                LoadServices();
            }
    
            private void btnPause_Click(object sender, EventArgs e)
            {
                this.serviceController1.Pause();
                LoadServices();
            }
    
            private void btnResume_Click(object sender, EventArgs e)
            {
                this.serviceController1.Continue(); ;
                LoadServices();
            }
    
            private void btnStop_Click(object sender, EventArgs e)
            {
                this.serviceController1.Stop();
                LoadServices();
            }
    
            private void lvServices_SelectedIndexChanged(object sender, EventArgs e)
            {
                SelectProcess();
            }
        }
    }
  • 相关阅读:
    转载1
    转载
    WampServer的研究日记一
    第一期 花式自适应网页哪家强? 就选你啦
    缓动函数requestAnimationFrame用法
    原生js canvas 碰撞游戏的开发笔记2
    非常便利的前端模板smarty js 的使用
    原生js canvas 碰撞游戏的开发笔记
    Sublime Text 的研究日记
    面向对象设计模式(目录)
  • 原文地址:https://www.cnblogs.com/wjshan0808/p/4262204.html
Copyright © 2020-2023  润新知