78 lines
2.9 KiB
C#
78 lines
2.9 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Diagnostics;
|
|||
|
using System.Net;
|
|||
|
using System.Net.Sockets;
|
|||
|
|
|||
|
namespace NetMonitorServer
|
|||
|
{
|
|||
|
class SetService
|
|||
|
{
|
|||
|
UdpClient net_send = new UdpClient();
|
|||
|
IPEndPoint net_send_port = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 34524);
|
|||
|
System.ServiceProcess.ServiceController serviceController;
|
|||
|
|
|||
|
public SetService(string data)
|
|||
|
{
|
|||
|
this.serviceController = new System.ServiceProcess.ServiceController();
|
|||
|
if (data.Substring(0, 13).ToLower() == "service start")
|
|||
|
this.setServiceStart(data);
|
|||
|
if (data.Substring(0, 12).ToLower() == "service stop")
|
|||
|
this.setServiceStop(data);
|
|||
|
if (data.Substring(0, 14).ToLower() == "service status")
|
|||
|
this.getServiceStatus(data);
|
|||
|
}
|
|||
|
|
|||
|
private void setServiceStart(string data)
|
|||
|
{
|
|||
|
String[] par = data.Split(' ');
|
|||
|
if (par.Length != 3)
|
|||
|
return;
|
|||
|
this.serviceController.ServiceName = par[2];
|
|||
|
this.serviceController.Start();
|
|||
|
this.serviceController.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running,new TimeSpan(0,0,10));
|
|||
|
String ret;
|
|||
|
if (this.serviceController.Status == System.ServiceProcess.ServiceControllerStatus.Running)
|
|||
|
ret = "true";
|
|||
|
else
|
|||
|
ret = "false";
|
|||
|
byte[] answ = Encoding.UTF8.GetBytes(ret);
|
|||
|
net_send.Send(answ, answ.Length, net_send_port);
|
|||
|
}
|
|||
|
|
|||
|
private void setServiceStop(string data)
|
|||
|
{
|
|||
|
String[] par = data.Split(' ');
|
|||
|
if (par.Length != 3)
|
|||
|
return;
|
|||
|
this.serviceController.ServiceName = par[2];
|
|||
|
this.serviceController.Stop();
|
|||
|
this.serviceController.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 10));
|
|||
|
String ret;
|
|||
|
if (this.serviceController.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
|
|||
|
ret = "true";
|
|||
|
else
|
|||
|
ret = "false";
|
|||
|
byte[] answ = Encoding.UTF8.GetBytes(ret);
|
|||
|
net_send.Send(answ, answ.Length, net_send_port);
|
|||
|
}
|
|||
|
|
|||
|
private void getServiceStatus(string data)
|
|||
|
{
|
|||
|
String[] par = data.Split(' ');
|
|||
|
if (par.Length != 3)
|
|||
|
return;
|
|||
|
this.serviceController.ServiceName = par[2];
|
|||
|
String ret;
|
|||
|
if (this.serviceController.Status == System.ServiceProcess.ServiceControllerStatus.Running)
|
|||
|
ret = "true";
|
|||
|
else
|
|||
|
ret = "false";
|
|||
|
byte[] answ = Encoding.UTF8.GetBytes(ret);
|
|||
|
net_send.Send(answ, answ.Length, net_send_port);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|