Saya kira sesuatu seperti ini akan berhasil:
Tambahkan System.ServiceProcess
ke referensi proyek Anda (Ada di tab .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";
}
Sunting: Ada juga metode sc.WaitforStatus()
yang mengambil status dan batas waktu yang diinginkan, tidak pernah menggunakannya tetapi mungkin sesuai dengan kebutuhan Anda.
Sunting: Setelah Anda mendapatkan status, untuk mendapatkan status itu lagi, Anda harus menelepon sc.Refresh()
dulu.
Referensi: Objek ServiceController di .NET.