Я думаю, щось подібне спрацювало б:
Додайте System.ServiceProcess
до своїх посилань на проект (Це на вкладці .NET).
using System.ServiceProcess;
ServiceController sc = new ServiceController(SERVICENAME);
switch (sc.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
case ServiceControllerStatus.Paused:
return "Paused";
case ServiceControllerStatus.StopPending:
return "Stopping";
case ServiceControllerStatus.StartPending:
return "Starting";
default:
return "Status Changing";
}
Редагувати: Існує також метод, sc.WaitforStatus()
який приймає бажаний статус та тайм-аут, ніколи не використовувався, але він може відповідати вашим потребам.
Редагувати: Після отримання статусу для отримання статусу знову потрібно зателефонувати sc.Refresh()
.
Довідка: Об'єкт ServiceController в .NET.