www.pudn.com > GetProcessList1.rar > GetProcessList.cpp
// GetProcessList.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include#include #include bool GetProcessModule (DWORD dwPID,DWORD dwModuleID,LPMODULEENTRY32 lpMe32,DWORD cbMe32) { bool bRet = FALSE; bool bFound = FALSE; HANDLE hModuleSnap = NULL; MODULEENTRY32 me32 = {0}; // hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,dwPID); if(hModuleSnap == (HANDLE)-1) return (FALSE); // me32.dwSize = sizeof(MODULEENTRY32); // // if(Module32First(hModuleSnap,&me32)) { do { if(me32.th32ModuleID == dwModuleID) { CopyMemory(lpMe32,&me32,cbMe32); bFound = TRUE; } } while(! bFound&&Module32Next(hModuleSnap,&me32)); bRet = bFound; // } else bRet = FALSE; CloseHandle(hModuleSnap); return(bRet); } bool GetProcessList() { HANDLE hProcessSnap = NULL; bool bRet = FALSE; PROCESSENTRY32 pe32 = {0}; // hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); if(hProcessSnap == (HANDLE)-1) return (FALSE); // pe32.dwSize = sizeof(PROCESSENTRY32); // if(Process32First(hProcessSnap,&pe32)) { DWORD dwPriorityClass; bool bGotModule = FALSE; MODULEENTRY32 me32 = {0}; do { bGotModule = GetProcessModule(pe32.th32ProcessID,pe32.th32ModuleID,&me32,sizeof(MODULEENTRY32)); if(bGotModule) { HANDLE hProcess; // hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe32.th32ProcessID); dwPriorityClass = GetPriorityClass(hProcess); CloseHandle(hProcess); // printf("\nPriority Class Base\t%d\n",pe32.pcPriClassBase); printf("PID\t\t\t%x\n",pe32.th32ProcessID); printf("Thread Count\t\t%d\n",pe32.cntThreads); printf("Module Name\t\t%s\n",me32.szModule); printf("Full Path\t\t%s\n\n",me32.szExePath); } } while(Process32Next(hProcessSnap,&pe32)); bRet = TRUE; } else bRet = FALSE; // CloseHandle(hProcessSnap); return(bRet); } int main(int argc, char* argv[]) { GetProcessList(); return 0; }