操控Windows服务

使用 System.ServiceProcess.ServiceController 类,可以获取指定服务的信息,并能控制指定服务。
注意:要添加 C:\WINNT\Microsoft.NET\Framework\v1.1.4322\System.ServiceProcess.dll 的引用

当调用ServiceController类对象 的Start()/Stop() 方法后,ServiceController 对象的Status 属性并不会发生变化,如果要使Status属性的值反映出服务的真实情况,必须通过一些方法来实现:
eg:
//定义一个ServiceController 对象
ServiceController sc = new ServiceController("Telnet");
 //开始启动"Telnet"服务,马上执行下一条语句(这时候telnet服务还没有完成启动)
sc.Start(); 
//等待服务到达running状态
sc.WaitForStatus(ServiceControllerStatus.Running); 
 //刷新对象的属性值
sc.Refresh();     
//打印对象的Status属性值
Console.WriteLine("Service Status: " + sc.Status.ToString()); 

注意:因为,启动任何服务都需要一定的时间,上面的例子中,如果没有WaitForStatus()语句,打印出的Status的值是 StartPending 。因为Start()方法启动了服务,但不会等待服务完成启动,就马上执行下一条语句了(这时服务正处于"启动中"状态)。
如果没有sc.Refresh()语句,sc对象的Status属性值是不会发生变化的

转载于:https://www.cnblogs.com/zqf620/archive/2007/01/20/625592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值