How to get service execuable path

Some time we need to get specific service path and then do something you want. there are 2 way to get specific service path bellow.

private static string GetRegistData(string name)
{
	string registData;
	RegistryKey hkml = Registry.LocalMachine;
	RegistryKey system = hkml.OpenSubKey("SYSTEM", true);
	RegistryKey currentControlSet = system.OpenSubKey("CurrentControlSet", true);
	RegistryKey services = currentControlSet.OpenSubKey("services", true);
	RegistryKey key = services.OpenSubKey(name, true);
	registData = key.GetValue("ImagePath").ToString();
	return registData;
}

private static string GetServicePath(string name)
{
	ManagementClass mc = new ManagementClass("Win32_Service");
	foreach (ManagementObject mo in mc.GetInstances())
	{
		if (mo.GetPropertyValue("Name").ToString() == name)
		{
			return mo.GetPropertyValue("PathName").ToString().Trim('"');
		}
	}
	return string.Empty;
}


原文地址:https://www.cnblogs.com/wzjhoutai/p/6859943.html