Saya memiliki aplikasi dalam C # (2.0 berjalan pada XP tertanam) yang berkomunikasi dengan 'pengawas' yang diimplementasikan sebagai Layanan Windows. Saat perangkat melakukan booting, layanan ini biasanya membutuhkan waktu untuk memulai. Saya ingin memeriksa, dari kode saya, apakah layanan ini berjalan. Bagaimana saya bisa mencapai ini?
c#
windows-services
watchdog
edosoft
sumber
sumber
Jawaban:
Saya kira sesuatu seperti ini akan berhasil:
Tambahkan
System.ServiceProcess
ke referensi proyek Anda (Ada di tab .NET).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.
sumber
Di sini Anda mendapatkan semua layanan yang tersedia dan statusnya di mesin lokal Anda.
Anda dapat membandingkan layanan Anda dengan properti service.name di dalam loop dan Anda mendapatkan status layanan Anda. Untuk detail, kunjungi http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx juga http://msdn.microsoft.com/en-us/library/microsoft.windows.design .servicemanager (v = vs.90) .aspx
sumber