C#中如何获得系统服务的路径

来源:百度知道 编辑:UC知道 时间:2024/06/07 20:53:42
在C#中有个 ServiceControl.....类
可以对系统当前的服务进程操作,但是却没有获取服务所启动的程序的路径的方法
有没有谁有经验的,可以分享下不?
3Q
我说的是服务啊
比如Telnet服务的路径或者SQLSERVER服务的路径或RPC服务的路径
我用SC.EXE可获取到服务的其他信息但是获取不到路径啊?
大哥们!!

如果是进程,就可以:
foreach (Process prc in Process.GetProcesses())
{
string s = prc .MainModule.FileName;
//or prc.Modules[0].FileName;
}

如果在进程中找不到的服务,就只有WMI了,我就只会这样:
public static bool UnInstallService(string svcName)
{
string s = "Win32_service";
using (ManagementClass mClass = new ManagementClass(s))
{
using (ManagementObjectCollection moc = mClass.GetInstances())
{
foreach (ManagementObject mo in moc)
{
if (mo["Name"].ToString().Trim().ToUpper() == svcName.ToUpper())
{
string s=mo["PathName"].ToString()
.................

有空装个WMI SDK,尝试做两个安装和卸载服务的小程序,就能基本掌握WMI了

pathverson = Server.MapPath(".")