欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » C# » 正文

热门阅读

在C#中判断Windows服务是否存在

创建时间:2011年11月16日 22:14  阅读次数:(14258)
分享到:
在C#中,我们可以利用以下方法判断Windows服务是否存在        
private bool IsServiceExisted(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController s in services)
{
if (s.ServiceName == serviceName)
{
return true;
}
}
return false;
}
}

解释一下上面的方法:
ServiceController[]--表示Windows服务集合。
ServiceController.GetServices()--检索本地计算机上的所有服务(设备驱动程序服务除外),返回System.ServiceProcess.ServiceController类型的数组,其中每个元素均与本地计算机上的一个服务关联

注意:
1,在使用ServiceController类前,我们必须引用命名空间System.ServiceProcess,而引用该命名空间,我们又必须在引用中添加System.ServiceProcess引用(在网上看到很多朋友说vs2008要从网上下载System.ServiceProcess.dll,其实不用,直接在vs2008的引用上右键- >添加引用,在.NET标签栏下就可以找到System.ServiceProcess了,选中直接确定就行了)

2,ServiceController有两个名称,一个是DisplayName,一个是ServiceName:
DisplayName-服务的友好名称,可用于标识该服务(就是我们在"控制面板"- >"服务"中看到的显示名称)
ServiceName--服务进行标识的名称(这个才是服务的真正名称,也就是我们在"控制面板"- >"服务"中看到的服务名称)

3,ServiceController中其它一些有用的方法与属性:
1)Status属性:指示该服务现在是正在运行、已停止还是已暂停,或者启动、停止、暂停或继续命令被挂起。
2)Pause()方法:暂停该服务。
3)Start()方法:启动该服务。
4)Stop()方法:停止该服务。

有了这些方法,我们就可以方便的对找到的服务进行操作了,比如要启动服务:
private void RunningService(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController s in services)
{
if (s.ServiceName == serviceName)
{
if (s.Status != ServiceControllerStatus.Running)
{
s.Start();
}
}
}
}


暂停与停止服务与上面类似,就不一一举例了。
利用其它方法操作Windows服务,请参看本站:
在Asp.net C#中启动服务,关闭服务,安装服务,卸载服务的方法View使用教程
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 51+18=? 的结果(结果是:69)
结  果: