Windows服务可执行文件的路径

Kot*_*tan 11 .net c# windows-services

如何从其他程序获取特定Windows服务的可执行文件的路径?不幸的是,ServiceController类(System.ServiceProcess)没有为它提供方法或属性!

Han*_*son 18

总是有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('"');
    }
}
Run Code Online (Sandbox Code Playgroud)

  • PathName看起来像服务的实际命令行,即它包含参数以及可执行文件路径. (3认同)

Bri*_*ndy 6

您可以使用HKLM中的注册表从这里获取它们:

 System\CurrentControlSet\Services\Service
Run Code Online (Sandbox Code Playgroud)

查找ImagePath值.