日期:2014-05-18  浏览次数:20974 次

C#如何获取系统服务的开启状态,高手进
我用C#写了个小程序,通过net   send   给局域网的机器发   消息,也就是   系统自带的   信使消息     但是这就有个问题了,如果我知道对方IP   但他却没有开启   messenger   服务   我就比较郁闷了,一个简单的   问题:   不管对方是否开启messenger   服务,我不真正给他发消息   通过什么方式   可以得知对方的messenger是否开启呢?只获取开启状态,别的请不要回答了   谢谢   问题解决就散分   谢谢各位高手

------解决方案--------------------
Windows 2003 Sp1和Windows XP SP2之后messenger服务默认是关闭的,就是为了防止人从internet发广告。

除非你有远程管理员权限或者在远程计算机上以管理员身份运行程序,否则你不能获取服务状态信息。
------解决方案--------------------
ServiceController cs = new ServiceController();
cs.MachineName = "localhost ";
cs.ServiceName = "Messenger ";
cs.Refresh();
if (cs.Status == ServiceControllerStatus.Running)
{
//该服务在运行,做一些你想干的事情。
}
------解决方案--------------------
WMI可以,去我的blog看看~~

http://blog.csdn.net/lhfzd2004
http://blog.csdn.net/lhfzd2004/archive/2007/08/01/1721687.aspx 第5个功能点