http://www.9cbs.net/develop/read_article.asp?id=20312
Menciic E chapter VB code, now translated from this code into C #, a person who is used to C # needs to note that the picture must be an ICO format, otherwise it may cause the tray to not display
Using system;
A summary description of Namespace UbiserialsController {///
Public class1 () {// // TODO: Add constructor logic //} here
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 ("Stop", New EventHandler (StopService))))); cm.MenuItems.add (New System.Windows.Forms.Menuitem, New EventHandler (Pauseservice))))))))))))); cm.Menuitems.Add (New System.Windows.Forms.Menuitem ("ContiUtem)); cm.MenuItems.add (New System.Windows.Forms.Menuitem "Start", New EventHandler (StartService)))))); cm.MenuItems.Add ("-"); cm.menuitems.add (New System.Windows.Forms.MenuItem ("About", New EventHandler (About))); CM.Menuitems.add (New System.Windows.Forms.Menuitem ("Exit", 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. amount.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", "About");}
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] .Nabled = false; cm.menuitems [2] .enabled = false; cm.menuitems [3] .enabled = true; break;}. .......... ServiceControllerstatus.Running: {ni.icon = new system.drawing.icon ("start.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] .Nabled = 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.evesendhandler (Timer_Elapsed); timer.start ();}}}