《Windows程序设计》[第二版] - 第2章 Win32程序运行原理 - 遍历系统进程和模块

《Windows程序设计》[第二版] - 第2章 Win32程序运行原理 - 遍历系统进程和模块

 

<textarea cols="50" rows="15" name="code" class="cpp">#include &lt;stdio.h&gt; #include &lt;Windows.h&gt; #include &lt;TlHelp32.h&gt; int main(int argc, char* argv[]) { PROCESSENTRY32 pe32; // 使用这个结构之前先设置它的大小 pe32.dwSize = sizeof(pe32); // 给系统内的所有进程拍一个快照 HANDLE hProcessSnapshot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSnapshot == INVALID_HANDLE_VALUE) { printf(" CreateToolhelp32Snapshot 调用失败!/n"); return -1; } // 遍历进程快照,轮流显示每个进程的信息 BOOL bMore = ::Process32First(hProcessSnapshot, &amp;pe32); while (bMore) { printf("/n 进程名称:%s /n", pe32.szExeFile); printf(" 进程ID号:%u /n", pe32.th32ProcessID); MODULEENTRY32 me32; me32.dwSize = sizeof(me32); HANDLE hProcessModule = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe32.th32ProcessID); if (hProcessModule != INVALID_HANDLE_VALUE) { bMore = ::Module32First(hProcessModule, &amp;me32); while (bMore) { printf(" 模块名称:%s /n", me32.szModule); bMore = ::Module32Next(hProcessModule, &amp;me32); } } ::CloseHandle(hProcessModule); bMore = ::Process32Next(hProcessSnapshot, &amp;pe32); } ::CloseHandle(hProcessSnapshot); return 0; }</textarea> 

你可能感兴趣的:(windows,Module)