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 != )
return;
name = this.lvServices.SelectedItems[].SubItems[].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();
}
}
}

ServiceController1的更多相关文章

  1. ServiceController组件控制计算机服务

    private void Form1_Load(object sender, EventArgs e) { //下面的示例使用 ServiceController 类检查IIS服务是否已停止.如果该服 ...

  2. OpenFirewall

    1.写一份json文件:将要添加防火墙例外的应用程序和端口写入到json文件中 2.打开防火墙,读取json文件添加例外 /// <summary> /// Firewall.xaml 的 ...

  3. C#启动或停止 计算机中“服务”

    第一.要添加一个引用System.ServiceProcess 第二.要在程序中使用命名空间ServiceProcess 代码片段: using System.ServiceProcess; Serv ...

  4. 使用ServiceController组件控制计算机服务

    实现效果: 知识运用: ServiceController组件的MachineName属性 //获取或设置服务所驻留的计算机名称 public string MachineName{get;set;} ...

  5. C#调用Resources.resx资源文件中的资源

    使用到了.NET中的资源文件,也就是Resources.resx,于是就学会了如何调用资源文件中的资源.首先,资源文件可以从项目属性中的资源标签添加.比如,我添加一个图片,叫做aaa.png,添加入资 ...

随机推荐

  1. for循环经典案例

    1.棋盘放粮食棋盘有32个格子,第一个格子放1个芝麻,第二个放2个,第三个放4个,第四个放8个...每个芝麻的重量为0.00001kg,如果要放满整个棋盘,需要多少重量的芝麻. <!DOCTYP ...

  2. 蓝牙版本V4.2特征讲解说明

    2014年12月4日,最新的蓝牙4.2标准颁布,改善了数据传输速度和隐私保护程度,并接入了该设备将可直接通过IPv6和6LoWPAN接入互联网.在新的标准下蓝牙信号想要连接或者追踪用户设备必须经过用户 ...

  3. 低功耗蓝牙4.0BLE编程-nrf51822开发(2)

    相关下载:http://download.csdn.net/detail/xgbing/9565708 首先看的示例是心率计一个示例程序:<KEIL path> \ARM\Device\N ...

  4. Linq分组功能

    Linq在集合操作上很方便,很多语法都借鉴自sql,但linq的分组却与sql有一定的区别,故整理发布如下. 1.  Linq分组 分组后以Key属性访问分组键值. 每一组为一个IEnumberAbl ...

  5. go 安装

    安装golang centos7 直接安装golang yum install golang centos6需添加软件源,然后再安装 rpm -ivh http://ftp.riken.jp/Linu ...

  6. firs tday

    1.JVM 解析: 2.JDBC 解析: 3.Spring

  7. 【Java 基础篇】【第六课】接口interface

    Java提供的这个interface的语法,目的就是将接口从类中剥离出来,构成独立的主体. 首先加入我们定义了这个杯子接口: interface Cup { void addWater(int w); ...

  8. 【Android开发学习笔记】【第五课】Activity的生命周期-上

    今天学习Activity当中的七个生命周期函数: 首先得说一个事情,就是在代码当中如果加入了 System.out.println(" ------");之后,如何查看这里面的输出 ...

  9. 添加事件(jquery)

    对盒子内部的盒子添加跟本身盒子相同的事件的时候,需要小心谨慎一点. 诸如: 从表象上看似乎没有什么太大问题,但是却存在一个致命的问题,就是每次点击box的时候,都会给test添加一个点击事件,而添加的 ...

  10. 使用ASP.NET web API创建REST服务(二)

    Creating a REST service using ASP.NET Web API A service that is created based upon the architecture ...