Как прослушать событие запуска процесса из моей службы Windows? - PullRequest
2 голосов
/ 28 июня 2019

Я хочу, чтобы моя служба Windows могла прослушивать, когда конкретный процесс, например, процесс A, запускался, и была в состоянии выключить его по желанию. Насколько это возможно?

1 Ответ

1 голос
/ 28 июня 2019

Вы можете использовать класс ManagementEventWatcher для получения уведомления о запуске процесса.

Подписка на временные уведомления о событиях на основе указанного запроса события.

На странице MSDN есть пример, который может соответствовать вашим потребностям.

В следующем примере показано, как клиент получает уведомление при создании экземпляра Win32_Process, поскольку класс события __InstanceCreationEvent,

Класс ManagementEventWatcher позволяет вам установить WqlEventQuery , чтобы указать тип события WQL для прослушивания.Дополнительная информация о параметрах и структуре запросов WQL доступна в документах WQL (SQL для WMI) и Справочник по WMI .

В качестве альтернативы, вы можете запросить массив запущенныхпроцессы, возвращаемые Process.GetProcesses () с интервалом с использованием таймера.

Затем получите ссылку на процесс, используя Process.GetProcessByName () или непосредственно изрезультирующий массив возвращается Process.GetProcesses () и использует метод Process.Kill () для завершения процесса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...