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

printf(" %s n", MdlEntry.szModule);

//и переходим к следующему

bIsok = Module32Next(pMdlSnap, &MdlEntry);

}

//чистимпамять!

CloseHandle(pMdlSnap);

return 1;

}

А теперь немного притормозим и посмотрим, какую еще информацию о процессах и модулях мы получаем:

typedef struct tagPROCESSENTRY32 {

DWORD dwSize; //Рамерструктуры

DWORD cntUsage; //Число ссылк на процесс. Процесс уничтожается, //когда число ссылок становится 0

DWORD th32ProcessID; //Идентификатор процесса - необходим

//во многих функциях

DWORD th32DefaultHeapID; //Идентификатор основной кучи - имеет

//смысл только в функциях toolhelp

DWORD th32ModuleID; //идентификатор модуля - имеет

//смысл только в функциях toolhelp

DWORD cntThreads; //Число потоков

DWORD th32ParentProcessID; //Идентификатор родителя - возвращается

//Даже если родителя уже нет

LONG pcPriClassBase; //приоритет по умолчанию всех //создаваемых процессом потоков

DWORD dwFlags; //Зарезервировано

CHAR szExeFile[MAX_PATH]; //Собственно имя процесса

} PROCESSENTRY32,*PPROCESSENTRY32,*LPPROCESSENTRY32;

typedef struct tagMODULEENTRY32 {

DWORD dwSize; //размерструктуры

DWORD th32ModuleID; //идентификатормодуля

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

К-во Просмотров: 398
Бесплатно скачать Статья: Работа с процессами в С/С++. Основные приемы