У меня есть приложение на C # (2.0, работающее на XP, встроенном), которое взаимодействует с «сторожевым таймером», реализованным как служба Windows. Когда устройство загружается, запуск этой службы обычно занимает некоторое время. Я хотел бы проверить из своего кода, работает ли служба. Как я могу сделать это?
c#
windows-services
watchdog
edosoft
источник
источник
Ответы:
Я думаю, что-то вроде этого будет работать:
Добавьте
System.ServiceProcess
в ваш проект ссылки (это на вкладке .NET).Изменить: Существует также метод,
sc.WaitforStatus()
который принимает желаемый статус и время ожидания, никогда не использовал его, но он может удовлетворить ваши потребности.Редактировать: Как только вы получите статус, чтобы получить статус снова, вам нужно будет
sc.Refresh()
сначала позвонить .Ссылка: объект ServiceController в .NET.
источник
Здесь вы получаете все доступные сервисы и их статус на вашем локальном компьютере.
Вы можете сравнить свой сервис со свойством service.name внутри цикла, и вы получите статус вашего сервиса. Для получения дополнительной информации перейдите по адресу http://msdn.microsoft.com/en-us/library/system.serviceprocess.servicecontroller.aspx, а также http://msdn.microsoft.com/en-us/library/microsoft.windows.design. .servicemanager (v = VS.90) .aspx
источник