zoukankan      html  css  js  c++  java
  • [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();
    }
    }
    }
  • 相关阅读:
    ACM ICPC 2008–2009 NEERC MSC A, B, C, G, L
    POJ 1088 滑雪 DP
    UVA 11584 最短回文串划分 DP
    POJ 2531 Network Saboteur DFS+剪枝
    UVa 10739 String to Palindrome 字符串dp
    UVa 11151 Longest Palindrome 字符串dp
    UVa 10154 Weights and Measures dp 降维
    UVa 10271 Chopsticks dp
    UVa 10617 Again Palindrome 字符串dp
    UVa 10651 Pebble Solitaire 状态压缩 dp
  • 原文地址:https://www.cnblogs.com/hcbin/p/1715384.html
Copyright © 2011-2022 走看看