Перечисление процессов
Все пользователи имеют доступ на чтение списка процессов в системе, и есть ряд различных функций, которые перечисляют активные процессы. Функция, используемая, будет зависеть от таких факторов, как требуемая поддержка платформы.
Для перечисления процессов используются следующие функции.
Функция | Описание |
---|---|
EnumProcesses | Извлекает идентификатор процесса для каждого объекта процесса в системе. |
Process32First | Извлекает сведения о первом процессе, обнаруженном в системном snapshot. |
Процесс32Далее | Извлекает сведения о следующем процессе, записанные в системном snapshot. |
WTSEnumerateProcesses | Извлекает сведения об активных процессах на указанном сервере терминалов. |
Функции toolhelp и EnumProcesses перечисляют все процессы. Чтобы получить список процессов, выполняемых в определенной учетной записи пользователя, используйте WTSEnumerateProcesses и выполните фильтрацию по идентификатору безопасности пользователя. Вы можете выполнить фильтрацию по идентификатору сеанса, чтобы скрыть процессы, выполняемые в других сеансах сервера терминалов.
Вы также можете фильтровать процессы по учетной записи пользователя независимо от функции перечисления, вызывая OpenProcess, OpenProcessToken и GetTokenInformation с помощью TokenUser. Однако вы не можете открыть процесс, защищенный дескриптором безопасности, если вам не предоставлен доступ.