Страницу Назад
Поискать другие аналоги этой работы
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 Кбайт Фаил: ![]()
Коментариев: 0 |
||||
Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них. Опять не то? Мы можем помочь сделать! Некоторые похожие работы:Лабораторная работа №1 по дисциплине: Инженерная и компьютерная графика Вариант:4ПОСТ РЕМОНТА АВТОМОБИЛЕЙ С РАЗРАБОТКОЙ ДВУХСТОЕЧНОГО ПОДЪЕМНИКА НА СТО "Организация и технология ремонта кузовов легковых автомобилей с разработкой стенда для восстановления кузова" Модернизация рабочего оборудования бульдозера.(Модернизация бульдозера) Насос густой смазки - 9-00 СБ Тиски для фрезерных работ - 17.000 СБ Зачет по предмету «Экономика предприятия». Вариант № 1 Ещё искать по базе с такими же ключевыми словами. |
||||
Не можешь найти то что нужно? Мы можем помочь сделать! От 350 руб. за реферат, низкие цены. Спеши, предложение ограничено ! |
Вход в аккаунт:
Страницу Назад
Cодержание / Информатика / Работа с процессами в С/С++. Основные приемы
Вход в аккаунт: