Уведомление об изменении привязки к процессу

#c #windows #affinity

Вопрос:

Можно ли немедленно получать уведомления, когда внешняя сторона изменяет привязку ваших программ к процессу? Без опроса GetProcessAffinityMask(). Например, если пользователь решит изменить его с помощью диспетчера задач.

Ответ №1:

ИЗМЕНИТЬ: Этот ответ был дан до редактирования, в котором добавлялось «Без опроса GetProcessAffinityMask()» и не указывался язык проверки.

Да, это выполнимо, например, с помощью PowerShell. Установите некоторые базовые данные один раз и время от времени проводите сравнения.

Вы можете получить процессы с Get-Process (документацией), которые возвращают System.Diagnostics.Process объект (документацию) со Process.ProcessorAffinity свойством (документация).

Таким образом, получение близости будет выглядеть так:

 Get-Process PROCESS | Select-Object ProcessorAffinity
 

И с этим — вы можете настроить свои уведомления (по почте, на рабочем столе или на любом другом).

Комментарии:

1. На самом деле я хотел знать, можно ли немедленно получать уведомления в моей программе на C , если кто-то нарушил связь с моими процессами, в идеале без опроса

2. «Без опроса GetProcessAffinityMask ()».

3. @IInspectable на этот вопрос был дан ответ 9 часов назад, до того, как произошло редактирование с помощью «Без опроса GetProcessAffinityMask ()». Проверьте, пожалуйста, перед использованием.

4. Первоначальный вопрос требовал «уведомления» . Опрос — это не уведомление.

5. Я понимаю уведомление как письмо, подсказку, окно сообщения или что-либо еще, что уведомляет меня об изменении. Обратите внимание на предложение в конце моего ответа: «И с этим — вы можете настроить свои уведомления (по почте, на рабочем столе или на любом другом)».