110,535
社区成员
发帖
与我相关
我的任务
分享
class Class1
{
/// <summary>
/// 根据所给的服务名判断该服务是否存在
/// </summary>
/// <param name="serviceName">服务名</param>
/// <returns>是否存在</returns>
private static bool IsServiceExisted(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController sc in services)
{
if (sc.ServiceName.ToUpper() == serviceName.ToUpper())
{
return true;
}
}
return false;
}
/// <summary>
/// 根据所给的服务名称得到该服务的状态
/// </summary>
/// <param name="servicesName">服务名称列表</param>
/// <returns>服务名称以及其状态</returns>
public static List<string> GetServiceStatus(string[] servicesName)
{
ServiceController scService = new ServiceController();
List<string> list = new List<string>();
foreach (string serviceName in servicesName)
{
if (!IsServiceExisted(serviceName))
{
list.Add(serviceName + "不存在");
}
else
{
scService.ServiceName = serviceName;
scService.MachineName = ".";
scService.Refresh();
if (scService.Status == ServiceControllerStatus.Stopped || scService.Status == ServiceControllerStatus.StopPending)
list.Add(serviceName + "停止");
else if (scService.Status == ServiceControllerStatus.Running || scService.Status == ServiceControllerStatus.StartPending)
list.Add(serviceName + "启动");
else if (scService.Status == ServiceControllerStatus.Paused || scService.Status == ServiceControllerStatus.PausePending)
list.Add(serviceName + "暂停");
else list.Add(serviceName);
}
}
return list;
}
ServiceController cs = new ServiceController();
cs.MachineName = "localhost ";
cs.ServiceName = "Messenger ";
cs.Refresh();
if (cs.Status == ServiceControllerStatus.Running)
{
//该服务在运行,做一些你想干的事情。
}