• [C#] 打开关闭系统服务


    来源:http://hi.baidu.com/%B0%D9%CD%F5%C5%F3%B6%C8/blog/item/221c015acf754e8d810a1813.html

    本例测试的是Telnet服务

    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;

    //引用System.ServiceProcess.dll
    using System.ServiceProcess;


    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    // Toggle the Telnet service:
    // If it is started (running, paused, etc), stop the service.
    // If it is stopped, start the service.
    ServiceController sc = new ServiceController("Telnet");
    Console.WriteLine(
    "The Telnet service status is currently set to {0} ", sc.Status.ToString());

    if ((sc.Status.Equals(ServiceControllerStatus.Stopped)) || (sc.Status.Equals(ServiceControllerStatus.StopPending)))
    {
    // Start the service if the current status is stopped.
    Console.WriteLine("Starting the Telnet service... ");
    sc.Start();
    }
    else
    {
    // Stop the service if its status is not set to "Stopped ".
    Console.WriteLine("Stopping the Telnet service... ");
    sc.Stop();
    }

    // Refresh and display the current service status.
    sc.Refresh();
    Console.WriteLine(
    "The Telnet service status is now set to {0}. ", sc.Status.ToString());
    }
    }
    }

    *********************************************************************************************************************

    来源:http://book.csdn.net/bookfiles/16/100165809.shtml

    • 书名:C#高级编程(第3版)
    • 作者:(美)罗宾逊 & 内格尔 著,李敏波 译
    • 来源:清华大学出版社
    • ISBN:7-302-10199-X
    • 定价:128元

    本例测试对象是所有系统服务

    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;

    //引用System.ServiceProcess.dll
    using System.ServiceProcess;


    namespace WindowsFormsApplication1
    {
    public partial class ServiceControlForm : Form
    {
    private System.ServiceProcess.ServiceController[] services;

    public ServiceControlForm()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();
    RefreshServiceList();
    }

    protected void RefreshServiceList()
    {
    services
    = ServiceController.GetServices();
    listBoxServices.DisplayMember
    = "DisplayName";
    listBoxServices.DataSource
    = services;
    }

    protected string GetServiceTypeName(ServiceType type)
    {
    string serviceType = "";
    if ((type & ServiceType.InteractiveProcess) != 0)
    {
    serviceType
    = "Interactive ";
    type
    -= ServiceType.InteractiveProcess;
    }

    switch (type)
    {
    case ServiceType.Adapter:
    serviceType
    += "Adapter";
    break;

    case ServiceType.FileSystemDriver:
    case ServiceType.KernelDriver:
    case ServiceType.RecognizerDriver:
    serviceType
    += "Driver";
    break;

    case ServiceType.Win32OwnProcess:
    serviceType
    += "Win32 Service Process";
    break;

    case ServiceType.Win32ShareProcess:
    serviceType
    += "Win32 Shared Process";
    break;

    default:
    serviceType
    += "unknown type " + type.ToString();
    break;
    }
    return serviceType;
    }

    protected void SetServiceStatus(ServiceController controller)
    {
    buttonStart.Enabled
    = true;
    buttonStop.Enabled
    = true;
    buttonPause.Enabled
    = true;
    buttonContinue.Enabled
    = true;

    if (!controller.CanPauseAndContinue)
    {
    buttonPause.Enabled
    = false;
    buttonContinue.Enabled
    = false;
    }

    if (!controller.CanStop)
    {
    buttonStop.Enabled
    = false;
    }

    ServiceControllerStatus status
    = controller.Status;
    switch (status)
    {
    case ServiceControllerStatus.ContinuePending:
    textBoxServiceStatus.Text
    = "Continue Pending";
    buttonContinue.Enabled
    = false;
    break;

    case ServiceControllerStatus.Paused:
    textBoxServiceStatus.Text
    = "Paused";
    buttonPause.Enabled
    = false;
    buttonStart.Enabled
    = false;
    break;

    case ServiceControllerStatus.PausePending:
    textBoxServiceStatus.Text
    = "Pause Pending";
    buttonPause.Enabled
    = false;
    buttonStart.Enabled
    = false;
    break;

    case ServiceControllerStatus.StartPending:
    textBoxServiceStatus.Text
    = "Start Pending";
    buttonStart.Enabled
    = false;
    break;

    case ServiceControllerStatus.Running:
    textBoxServiceStatus.Text
    = "Running";
    buttonStart.Enabled
    = false;
    buttonContinue.Enabled
    = false;
    break;

    case ServiceControllerStatus.Stopped:
    textBoxServiceStatus.Text
    = "Stopped";
    buttonStop.Enabled
    = false;
    break;

    case ServiceControllerStatus.StopPending:
    textBoxServiceStatus.Text
    = "Stop Pending";
    buttonStop.Enabled
    = false;
    break;

    default:
    textBoxServiceStatus.Text
    = "Unknown status";
    break;
    }
    }


    // listBoxServices的SelectedIndexChanged事件
    protected void OnSelectedIndexChanged(object sender, System.EventArgs e)
    {
    ServiceController controller
    = (ServiceController)listBoxServices.SelectedItem;
    textBoxDisplayName.Text
    = controller.DisplayName;
    textBoxServiceType.Text
    = GetServiceTypeName(controller.ServiceType);
    textBoxServiceName.Text
    = controller.ServiceName;
    SetServiceStatus(controller);
    }

    // buttonStart,buttonStop,buttonPause,buttonContinue的Click事件
    protected void buttonCommand_Click(object sender, System.EventArgs e)
    {
    Cursor.Current
    = Cursors.WaitCursor;
    ServiceController controller
    = (ServiceController)listBoxServices.SelectedItem;

    if (sender == this.buttonStart)
    {
    controller.Start();
    controller.WaitForStatus(ServiceControllerStatus.Running);
    }
    else if (sender == this.buttonStop)
    {
    controller.Stop();
    controller.WaitForStatus(ServiceControllerStatus.Stopped);
    }
    else if (sender == this.buttonPause)
    {
    controller.Pause();
    controller.WaitForStatus(ServiceControllerStatus.Paused);
    }
    else if (sender == this.buttonContinue)
    {
    controller.Continue();
    controller.WaitForStatus(ServiceControllerStatus.Running);
    }

    int index = listBoxServices.SelectedIndex;
    RefreshServiceList();
    listBoxServices.SelectedIndex
    = index;
    Cursor.Current
    = Cursors.Default;
    }

    // buttonRefresh的Click事件
    protected void buttonRefresh_Click(object sender, System.EventArgs e)
    {
    RefreshServiceList();
    }

    // buttonExit的Click事件
    protected void buttonExit_Click(object sender, System.EventArgs e)
    {
    Application.Exit();
    }
    }
    }
  • 相关阅读:
    Linux部署thinkphp5,nginx服务器一直访问index/index问题解决方法
    如何防止XSS攻击?
    centos7+nginx + php 部署多站点
    dubbo+spring+mybatis分布式框架的使用
    增删改查sql语句
    (转)linux内核参数注释与优化
    php+nginx环境配置注意事项
    vs installer 将.net framework 集成到安装包中
    Method not found: 'System.Data.Entity.ModelConfiguration.Configuration.XXX
    未能加载文件或程序集“XXX”或它的某一个依赖项。
  • 原文地址:https://www.cnblogs.com/hcbin/p/1715384.html
Copyright © 2020-2023  润新知