Как я могу создать приложение, которое прослушивает сервисы для события Service Status Changed.(Я не хочу повторной проверки всех служб)
РЕДАКТИРОВАТЬ
Мне нужно, чтобы он работал на Windows XP / 2000
В Vista и выше вы можете использовать NotifyServiceStatusChange API.См. Пример кода на MSDN .
NotifyServiceStatusChange
Если вы отслеживаете более одной службы, вам придется звонить NotifyServiceStatusChange для каждой службы, которую вы хотите отслеживать.
Вы можете использовать WMI с чем-то вроде SELECT * FROM __InstanceModificationEvent WHERE TargetInstance ISA 'Win32_Service', а затем проверить поле State класса Win32_Service.
SELECT * FROM __InstanceModificationEvent WHERE TargetInstance ISA 'Win32_Service'
Вы ищете NotifyServiceStatusChange, который требует Vista. На 2000 / XP вам нужно будет опросить.