Прочитать на английском

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


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

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

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

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

 

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

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