Sanırım böyle bir şey işe yarayacak:
System.ServiceProcess
Proje referanslarınıza ekleyin (.NET sekmesinde bulunur).
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";
}
Düzenleme: Ayrıca sc.WaitforStatus()
, hiç kullanılmayan bir durum ve bir zaman aşımı süren bir yöntem vardır, ancak ihtiyaçlarınıza uygun olabilir.
Düzenleme: Durumu aldıktan sonra, durumu tekrar almak için sc.Refresh()
önce aramanız gerekir .
Başvuru: .NET'te ServiceController nesnesi.