Csharp/C Sharp/Windows/Windows Service

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Activating a program remotely.

<source lang="csharp"> using System; using System.ServiceProcess; class MainClass {

   public static void StartService(string server, string service) {
           Console.WriteLine("About to start the {0} Service", service);
           ServiceController svcCtrl;
           if (server.Length != 0)
               svcCtrl = new ServiceController(server, service);
           else
               svcCtrl = new ServiceController(service);
           svcCtrl.Start();
   }
   public static void StopService(string server, string service) {
           Console.WriteLine("About to stop the {0} Service", service);
           ServiceController svcCtrl;
           if (server.Length != 0)
               svcCtrl = new ServiceController(server, service);
           else
               svcCtrl = new ServiceController(service);
           svcCtrl.Stop();
   }
   public static void ShowServices(string server) {
           ServiceController[] services;
           if (server.Length != 0)
               services = ServiceController.GetServices(server);
           else
               services = ServiceController.GetServices();
           foreach (ServiceController svc in services) {
               Console.WriteLine("Found service : {0}", svc.DisplayName);
           }
   }
   public static void Main(string[] args) {
       StartService(args[0], args[2]);
       StopService(args[0], args[2]);
       ShowServices(args[0]);
   }

}

</source>


Creating a windows service.

<source lang="csharp"> using System; using System.Collections; using System.ruponentModel; using System.Configuration; using System.Data; using System.Diagnostics; using System.ServiceProcess; public class WinService1 : System.ServiceProcess.ServiceBase {

   private EventLog eventLog;
   public WinService1() {
       this.ServiceName = "WinService1";
       string source = "Main";
       eventLog = new EventLog();
       eventLog.Source = source;
   }
   static void Main() {
       System.ServiceProcess.ServiceBase[] ServicesToRun;
       ServicesToRun = new System.ServiceProcess.ServiceBase[] { new WinService1() };
       System.ServiceProcess.ServiceBase.Run(ServicesToRun);
   }
   protected override void OnStart(string[] args) {
       eventLog.WriteEntry("starting up!");
   }
   protected override void OnStop() {
       eventLog.WriteEntry("shutting down!");
   }

}

</source>