宜昌华友成品库管理软件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

228 lines
7.8 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Diagnostics;
using System.ServiceProcess;
namespace WinServiceConsole
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private System.Windows.Forms.NotifyIcon notifyIcon = null;
public MainWindow()
{
InitializeComponent();
this.InitialTray();
this.Closing += new System.ComponentModel.CancelEventHandler(MainWindow_Closing);
this.MouseLeftButtonDown += new MouseButtonEventHandler(MainWindow_MouseLeftButtonDown);
}
void MainWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
this.DragMove();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.ResizeMode = System.Windows.ResizeMode.NoResize;
ServiceController serviceController = new ServiceController("WMSService_LZ_SUBWAY");
try
{
if (serviceController.Status == ServiceControllerStatus.Running)
{
this.serviceStatus.Fill = Brushes.Green;
this.lblText.Content = "服务运行中!";
this.btnStart.IsEnabled = false;
}
if (serviceController.Status == ServiceControllerStatus.Stopped)
{
this.serviceStatus.Fill = Brushes.Red;
this.lblText.Content = "服务已停止!";
this.btnStop.IsEnabled = false;
}
this.btnInstall.IsEnabled = true;
this.btnUninstall.IsEnabled = true;
}
catch (Exception ex)
{
this.btnStart.IsEnabled = false;
this.btnStop.IsEnabled = false;
}
}
void MainWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
this.Visibility = Visibility.Hidden;
this.notifyIcon.ShowBalloonTip(3, "提示", "程序隐藏在后台运行", System.Windows.Forms.ToolTipIcon.Info);
}
private void InitialTray()
{
notifyIcon = new System.Windows.Forms.NotifyIcon();
notifyIcon.Text = "托盘图标";
notifyIcon.BalloonTipText = "程序运行中";
notifyIcon.Visible = true;
notifyIcon.Icon = new System.Drawing.Icon(System.Windows.Forms.Application.StartupPath + @"\SiasunWMS.ico");
notifyIcon.ShowBalloonTip(2000);
notifyIcon.MouseClick += new System.Windows.Forms.MouseEventHandler(notifyIcon_MouseClick);
System.Windows.Forms.MenuItem menuExit = new System.Windows.Forms.MenuItem("退出");
System.Windows.Forms.MenuItem[] contextMenu = new System.Windows.Forms.MenuItem[] { menuExit };
notifyIcon.ContextMenu = new System.Windows.Forms.ContextMenu(contextMenu);
this.StateChanged += new EventHandler(MainWindow_StateChanged);
menuExit.Click += new EventHandler(menuExit_Click);
}
void menuExit_Click(object sender, EventArgs e)
{
if (MessageBox.Show("是否退出系统?", "系统提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes) == MessageBoxResult.Yes)
{
this.notifyIcon.Dispose();
Application.Current.Shutdown();
}
}
void MainWindow_StateChanged(object sender, EventArgs e)
{
if (this.WindowState == WindowState.Minimized)
{
this.Visibility = System.Windows.Visibility.Hidden;
}
}
void notifyIcon_MouseClick(object sender, System.Windows.Forms.MouseEventArgs e)
{
if (e.Button == System.Windows.Forms.MouseButtons.Left)
{
if (this.Visibility == System.Windows.Visibility.Visible)
{
this.Visibility = Visibility.Hidden;
}
else
{
this.Visibility = Visibility.Visible;
this.Activate();
}
}
}
/// <summary>
/// 安装服务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnInstall_Click(object sender, RoutedEventArgs e)
{
try
{
string CurrentDirectory = System.Environment.CurrentDirectory;
System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
var path = System.Environment.CurrentDirectory + "\\SiaSun.LMS.WCFHost.exe";
Process.Start("sc", "create WMSService_LZ_SUBWAY binpath= \"" + path + "\" displayName= 新松物流管理系统服务端-兰州地铁 start= demand");
System.Environment.CurrentDirectory = CurrentDirectory;
this.btnInstall.IsEnabled = false;
this.btnUninstall.IsEnabled = true;
this.btnStart.IsEnabled = true;
this.btnStop.IsEnabled = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
/// <summary>
/// 卸载服务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnUninstall_Click(object sender, RoutedEventArgs e)
{
string CurrentDirectory = System.Environment.CurrentDirectory;
System.Environment.CurrentDirectory = CurrentDirectory + "\\Service";
Process.Start("sc", "delete WMSService_LZ_SUBWAY");
System.Environment.CurrentDirectory = CurrentDirectory;
this.btnInstall.IsEnabled = true ;
this.btnUninstall.IsEnabled = false;
}
/// <summary>
/// 启动服务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStart_Click(object sender, RoutedEventArgs e)
{
ServiceController serviceController = new ServiceController("WMSService_LZ_SUBWAY");
if (serviceController.Status == ServiceControllerStatus.Paused || serviceController.Status == ServiceControllerStatus.Stopped)
{
serviceController.Start();
this.serviceStatus.Fill = Brushes.Green;
this.lblText.Content = "服务运行中!";
this.btnStart.IsEnabled = false;
this.btnStop.IsEnabled = true;
}
}
/// <summary>
/// 停止服务
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStop_Click(object sender, RoutedEventArgs e)
{
ServiceController serviceController = new ServiceController("WMSService_LZ_SUBWAY");
if (serviceController.CanStop)
{
this.serviceStatus.Fill = Brushes.Red;
this.lblText.Content = "服务已停止!";
serviceController.Stop();
this.btnStop.IsEnabled = false;
this.btnStart.IsEnabled = true;
}
}
private void btnMinsize_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
}