如何从其他程序获取特定Windows服务的可执行文件的路径? 不幸的是,ServiceController类(System.ServiceProcess)没有为它提供方法或属性!
答案 0 :(得分:18)
总是有here所述的WMI课程Win32_Service
,特别是PathName
。
这有效:
ManagementClass mc = new ManagementClass("Win32_Service");
foreach(ManagementObject mo in mc.GetInstances())
{
if(mo.GetPropertyValue("Name").ToString() == "<Short name of your service>")
{
return mo.GetPropertyValue("PathName").ToString().Trim('"');
}
}
答案 1 :(得分:6)
您可以使用HKLM中的注册表从这里获取它们:
System\CurrentControlSet\Services\Service
查找ImagePath值。