Я работаю над программой установки для одного из продуктов моей компании. Продукт может быть установлен несколько раз, и каждая установка представляет отдельную службу Windows. Когда пользователи обновляют или переустанавливают программу, я хотел бы найти запущенные службы, найти службы, принадлежащие продукту, а затем найти исполняемый файл и путь к нему для этой службы. Затем используйте эту информацию, чтобы узнать, какую из служб пользователь хочет обновить / заменить / установить / и т. Д. В приведенном ниже примере кода я вижу имя службы, описание и т. Д., Но не вижу фактического имени файла или пути. Может кто-нибудь сказать мне, что мне не хватает? Заранее спасибо!
Код, который я имею, выглядит следующим образом:
ServiceController[] scServices;
scServices = ServiceController.GetServices();
foreach (ServiceController scTemp in scServices)
{
if (scTemp.ServiceName == "ExampleServiceName")
{
Console.WriteLine();
Console.WriteLine(" Service : {0}", scTemp.ServiceName);
Console.WriteLine(" Display name: {0}", scTemp.DisplayName);
ManagementObject wmiService;
wmiService = new ManagementObject("Win32_Service.Name='" + scTemp.ServiceName + "'");
wmiService.Get();
Console.WriteLine(" Start name: {0}", wmiService["StartName"]);
Console.WriteLine(" Description: {0}", wmiService["Description"]);
}
}