Поделиться через


Перечисление процессов

Все пользователи имеют доступ на чтение списка процессов в системе, и есть ряд различных функций, которые перечисляют активные процессы. Функция, используемая, будет зависеть от таких факторов, как требуемая поддержка платформы.

Для перечисления процессов используются следующие функции.

Функция Описание
EnumProcesses Извлекает идентификатор процесса для каждого объекта процесса в системе.
Process32First Извлекает сведения о первом процессе, обнаруженном в системном snapshot.
Процесс32Далее Извлекает сведения о следующем процессе, записанные в системном snapshot.
WTSEnumerateProcesses Извлекает сведения об активных процессах на указанном сервере терминалов.

 

Функции toolhelp и EnumProcesses перечисляют все процессы. Чтобы получить список процессов, выполняемых в определенной учетной записи пользователя, используйте WTSEnumerateProcesses и выполните фильтрацию по идентификатору безопасности пользователя. Вы можете выполнить фильтрацию по идентификатору сеанса, чтобы скрыть процессы, выполняемые в других сеансах сервера терминалов.

Вы также можете фильтровать процессы по учетной записи пользователя независимо от функции перечисления, вызывая OpenProcess, OpenProcessToken и GetTokenInformation с помощью TokenUser. Однако вы не можете открыть процесс, защищенный дескриптором безопасности, если вам не предоставлен доступ.