C#代码开启或关闭window service
using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
namespace startSqlServer
{
class Program
{
static void Main(string[] args)
{
ServiceController sc = getStatus();
if (sc.DisplayName.ToString() == "SQL Server (MSSQLSERVER)")
{
string status = "";
if (sc.Status == ServiceControllerStatus.ContinuePending)
{
status = "当前服务状态为 继续 ";
}
if (sc.Status == ServiceControllerStatus.Paused)
{
status = "当前服务状态为 暂停 ";
}
if (sc.Status == ServiceControllerStatus.PausePending)
{
status = "当前服务状态为 正在暂停 ";
}
if (sc.Status == ServiceControllerStatus.Running)
{
status = "当前服务状态为 启动 ";
}
if (sc.Status == ServiceControllerStatus.StartPending)
{
status = "当前服务状态为 正在 ";
}
if (sc.Status == ServiceControllerStatus.Stopped)
{
status = "当前服务状态为 停止 ";
}
if (sc.Status == ServiceControllerStatus.StopPending)
{
status = "当前服务状态为 正在停止 ";
}
Console.WriteLine(status);
lable:
Console.WriteLine("输入1启动服务 输入2停止服务,输入3退出");
string item = Console.ReadLine().Trim();
switch (item)
{
case "1":
if (getStatus().Status == ServiceControllerStatus.Stopped || getStatus().Status == ServiceControllerStatus.StartPending)
{
sc.Start();
Console.WriteLine("启动成功");
}
else
{
cw("操作失败, 当前服务处于启动或正在启动状态");
}
goto lable;
case "2":
if (getStatus().Status != ServiceControllerStatus.Stopped && getStatus().Status != ServiceControllerStatus.StartPending)
{
sc.Close();
sc.Stop();
Console.WriteLine("停止成功");
}
else
{
cw("操作失败, 当前服务处于停止或正在停止状态");
}
goto lable;
case "3":
break;
default:
Console.WriteLine("输入有误,请重新输入");
goto lable;
}
}
}
public static void cw(string word)
{
Console.WriteLine(word);
}
public static ServiceController getStatus()
{
ServiceController[] service = ServiceController.GetServices();
for (int i = 0; i < service.Length; i++)
{
if (service[i].DisplayName.ToString() == "SQL Server (MSSQLSERVER)")
{
return service[i];
}
}
throw new Exception("未找到该服务");
}
}
}
记得要先引用using System.ServiceProcess;
浙公网安备 33010602011771号