• [WPF]测试Windowns服务开启和关闭程序


    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows;
    using System.Windows.Input;

    using System.ServiceProcess;
    using System.Windows.Threading;
    namespace WpfApplication1
    {
        
    /// <summary>
        
    /// MainWindow.xaml 的交互逻辑
        
    /// </summary>
        public partial class MainWindow : Window
        {
            
    public MainWindow()
            {
                InitializeComponent();
                
    this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
            }

            
    void MainWindow_Loaded(object sender, RoutedEventArgs e)
            {
                DataBind();
            }

            
    void DataBind()
            {
                
    foreach (var ary in ServiceController.GetServices())
                {
                    lbListBox.Items.Add(ary.ServiceName);
                }
            }
            
    //开启服务
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                
    string name = lbListBox.SelectedItem.ToString();
                ServiceController sc 
    = new ServiceController(name);
                
    if (sc.Status == ServiceControllerStatus.Running)
                {
                    MessageBox.Show(
    "服务已处于开启状态");
                }
                
    else
                {
                    sc.Start();
                }
                DataBind();
                TimeThread();
            }
            
    //停止服务
            private void button2_Click(object sender, RoutedEventArgs e)
            {
                
    string name = lbListBox.SelectedItem.ToString();
                ServiceController sc 
    = new ServiceController(name);
                
    if (sc.Status == ServiceControllerStatus.Stopped)
                {
                    MessageBox.Show(
    "服务已处于停止状态");
                }
                
    else
                {
                    sc.Stop();
                }
                DataBind();
                TimeThread();
            }

            
    void TimeThread()
            {
                DispatcherTimer _timer 
    = new DispatcherTimer();
                _timer.Interval 
    = new TimeSpan(00001000 / 24);
                _timer.Tick 
    += new EventHandler(_timer_Tick);
                _timer.Start();
            }

            
    void _timer_Tick(object sender, EventArgs e)
            {
                BindLabel();
            }

            
    private void lbListBox_MouseUp(object sender, MouseButtonEventArgs e)
            {
                BindLabel();
            }

            
    void BindLabel()
            {
                
    string name = lbListBox.SelectedItem.ToString();
                ServiceController sc 
    = new ServiceController(name);
                label1.Content 
    = "服务名称:" + sc.DisplayName;
                label2.Content 
    = "服务类型:" + sc.ServiceType;
                label3.Content 
    = "服务状态:" + sc.Status;
            }
        }
    }

     Demo:/Files/leeolevis/WPF/WpfApplication1.zip

  • 相关阅读:
    luogu P1019 单词接龙
    luogu P4137 Rmq Problem / mex
    Virtualbox 修改硬盘的序列号等信息 例
    httpHandlers path="*.sky"
    Oracle告Google输了
    %STSADM% -o addsolution -filename AEMediaPlayerWebpart.wsp
    placeholder
    String强制转换为Date,freemarker标签里date数据的显示问题
    eclipse配置JDK和设置编译版本的几种方法
    httpd 系统错误 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll
  • 原文地址:https://www.cnblogs.com/leeolevis/p/1777658.html
Copyright © 2020-2023  润新知