zoukankan      html  css  js  c++  java
  • [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

  • 相关阅读:
    <Android HAL 之路> HAL 简介
    <Android 应用 之路> 简易贪吃蛇
    略论研发评审的必要性
    微信支付开发(7) 收货地址共享接口V2
    连接点和线路点的区别
    IP地址分类及子网掩码详解
    基于UDP协议的多路广播地址
    频分双工
    航空连接器、端子
    表面粗糙度及加工符号
  • 原文地址:https://www.cnblogs.com/leeolevis/p/1777658.html
Copyright © 2011-2022 走看看