Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Обработка информации о процессах





Имея дескриптор снимка, содержащий информацию о процессах, можно воспользоваться двумя функциями Тоо1Не1р32, которые позволяют последовательно просмотреть сведения обо всех процессах в системе. Функции Process32First() и Process32Next() определены следующим образом:

function Process32First(hSnapshot: THandle; var lppe: TProcessEntry32):BOOL; stdcall;

function Process32Next(hSnapshot: THandle; var lppe: TProcessEntry32):BOOL; stdcall;

Первый параметр у обеих функций является дескриптором снимка, возвращаемым функцией CreateToolhelp32Snapshot().Второй параметр, lppe, представляет собой запись TProcessEntry32, которая передается по ссылке. По мере прохождения по элементам перечисления функции будут заполнять эту запись информацией о следующем процессе. Запись TProcessEntry32 определяется так:

type

TProcessEntry32 = record

dwSize: DWORD;

cntUsage: DWORD;

th32ProcessID: DWORD;

th32DefaultHeapID: DWORD;

th32ModuleID: DWORD;

cntThreads: DWORD;

th32ParentProcessID: DWORD;

pcPriClassBase: Longint;

dwFlags: DWORD;

szExeFile: array[0..MAX_PATH - 1] of Char;

end;

· В поле dwSize содержится размер записи TProcessEntry32. До использования этой записи поле dwSize должно быть инициализировано значением SizeOf (TProcessEntry32).

· В поле cntUsage хранится значение счетчика ссылок процесса. Когда это значение станет равным нулю, операционная система выгрузит процесс.

· В поле th32ProcessID содержится идентификационный номер процесса.

· Поле th32DefaultHeapID предназначено для хранения идентификатора (ID) для кучи процесса, действующей по умолчанию. Этот ID имеет значение только для функций Тоо1Не1р32, и его нельзя использовать с другими функциями Win32.

· Поле thModulelD идентифицирует модуль, связанный с процессом. Это поле имеет значение только для функций TooIHelp32.

· По значению поля cntThreads можно судить о том, сколько потоков начало выполняться в данном процессе.

· Поле th32ParentProcessID идентифицирует родительский процесс для данного процесса.

· В поле pcPriClassBase хранится базовый приоритет процесса. Операционная система использует это значение для управления работой потоков.

· Поле dwFlags зарезервировано.

· В поле szExeFile содержится строка с ограничивающим нуль-символом, которая представляет собой путь и имя файла ЕХЕ-программы или драйвера, связанного с данным процессом.

После создания снимка, содержащего информацию о процессах, для опроса данных по каждому процессу следует вызвать сначала функцию Process32First(), а затем вызывать функцию Process32Next() до тех пор, пока она не вернет значение False.

Date: 2015-11-14; view: 264; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию