Страницу Назад
Поискать другие аналоги этой работы

10

Работа с процессами в С/С++. Основные приемы

ID: 113160
Дата закачки: 30 Сентября 2013
Продавец: evelin (Напишите, если есть вопросы)
    Посмотреть другие работы этого продавца

Тип работы: Работа
Форматы файлов: Microsoft Office

Описание:
Данная статья рассказывает о работе с процессами, модулями, кучами и потоками при помощи билиотеки TOOLHELP

Работа с процессами - основа, без которой заниматься системным программированием так же бессмысленно, как без знания структуры PE-файлов или организации памяти. Поэтому я поднимаю эту тему вновь и расскажу о работе с процессами посредством функций TOOLHELP.

Язык программирования: я выбрал C (без плюсиков, т.к. работы с классами в этой статье не будет - после прочтения вы сможете их без труда составить сами) по многим причинам и в первую очередь из-за его низкоуровнего взаимодействия с памятью...записал-считал, все просто и понятно.

Перечислить запущенные в системе процессы можно по-разному, я привык пользоваться функциями TOOLHELP. Общая последовательность действий при работе с этой библиотекой: делаем "снимок" (Snapshot) системной информации, которая нам необходима, потом бегаем по процессам (а также модулям и кучам). Поэтому начнем с простого - перечислим все процессы.

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

int EnumerateProcs(void)

{

//создаем "снимок" информации о процессах

//первый параметр функции - константа, определяющая,

//какую информацию нам нужно "снять", а второй -

//идентификатор процесса, к которому относится эта

//информация. В данном случае это 0 т.к. мы делаем

//снимок всех процессов

HANDLE pSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

bool bIsok = false;

//Структура, в которую будут записаны данные процесса

PROCESSENTRY32 ProcEntry;

//установим ее размер, это необходимое действие

ProcEntry.dwSize = sizeof(ProcEntry);

//теперь определим первый процесс

//первый параметр функции - хэндл "снимка" информации

//второй - адрес структуры PROCESSENTRY32

//true - в случае удачи, false - в случае неудачи

bIsok = Process32First(pSnap, &ProcEntry);

//здесь можно было вставить роскошный цикл for(....) но это

//не совсем удобочитаемо

//так что цикл while

while(bIsok)

{

//печатаем имя процесса, его идентификатор

//теперь, когда у нас есть структура ProcEntry

//То, какую информацию вы из нее возьмете, зависит

//только от задачи ))

printf("%s %un", ProcEntry.szExeFile, ProcEntry.th32ProcessID);

bIsok = Process32Next(pSnap, &ProcEntry);

Размер файла: 8,1 Кбайт
Фаил: Упакованные файлы (.zip)

   Скачать

   Добавить в корзину


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


Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Информатика / Работа с процессами в С/С++. Основные приемы
Вход в аккаунт:
Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!