在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
需要注意的是图片一定需要是ico格式,否则可能会导致托盘的不显示 using System; namespace UBISerialsController { /// <summary> /// Class1 的摘要说明。 /// </summary> public class Class1 { static System.ServiceProcess.ServiceController sc; static System.Windows.Forms.NotifyIcon ni; static System.Windows.Forms.ContextMenu cm; static System.Timers.Timer timer; public Class1() { // // TODO: 在此处添加构造函数逻辑 // } static void Main() { try { sc=new System.ServiceProcess.ServiceController("UBISerials"); ni=new System.Windows.Forms.NotifyIcon(); ni.Visible=false; cm=new System.Windows.Forms.ContextMenu(); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("停止",new EventHandler(StopService))); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("暂停",new EventHandler(PauseService))); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("继续",new EventHandler(ContiuneService))); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("开始",new EventHandler(StartService))); cm.MenuItems.Add("-"); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("关于",new EventHandler(About))); cm.MenuItems.Add(new System.Windows.Forms.MenuItem("退出",new EventHandler(Exit))); ni.ContextMenu=cm; ni.Visible=true; SetUpTimer(); System.Windows.Forms.Application.Run(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } private static void StopService(object sender,System.EventArgs e) { if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Running&&sc.CanStop==true) { try { sc.Stop(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } } private static void PauseService(object sender,System.EventArgs e) { if(sc.Status!=System.ServiceProcess.ServiceControllerStatus.Paused&&sc.CanPauseAndContinue==true) { try { sc.Pause(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } } private static void ContiuneService(object sender,System.EventArgs e) { if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Paused&&sc.CanPauseAndContinue==true) { try { sc.Continue(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } } private static void StartService(object sender,System.EventArgs e) { if(sc.Status==System.ServiceProcess.ServiceControllerStatus.Stopped) { try { sc.Start(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } } private static void About(object sender,System.EventArgs e) { System.Windows.Forms.MessageBox.Show("2005.4.3","关于"); } private static void Exit(object sender,System.EventArgs e) { try { timer.Dispose(); sc.Dispose(); cm.Dispose(); ni.Dispose(); System.Windows.Forms.Application.Exit(); } catch(System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message.ToString()); } } private static void timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { GetServiceState(); } private static void GetServiceState() { sc.Refresh(); switch(sc.Status) { case System.ServiceProcess.ServiceControllerStatus.Stopped: { ni.Icon=new System.Drawing.Icon("stopped.ico"); cm.MenuItems[0].Enabled=false; cm.MenuItems[1].Enabled=false; cm.MenuItems[2].Enabled=false; cm.MenuItems[3].Enabled=true; break; } case System.ServiceProcess.ServiceControllerStatus.Running: { ni.Icon=new System.Drawing.Icon("started.ico"); cm.MenuItems[0].Enabled=true; cm.MenuItems[1].Enabled=true; cm.MenuItems[2].Enabled=false; cm.MenuItems[3].Enabled=false; break; } case System.ServiceProcess.ServiceControllerStatus.Paused: { ni.Icon=new System.Drawing.Icon("paused.ico"); cm.MenuItems[0].Enabled=false; cm.MenuItems[1].Enabled=false; cm.MenuItems[2].Enabled=true; cm.MenuItems[3].Enabled=false; break; } default: { ni.Icon=new System.Drawing.Icon("paused.ico"); break; } } } private static void SetUpTimer() { timer=new System.Timers.Timer(); timer.Interval=500; timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed); timer.Start(); } } } |
请发表评论