#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
void main()
{
PROCESSENTRY32 ProcessEntry = { 0 };
MODULEENTRY32 ModuleEntry = { 0 };
HANDLE hProcessSnap;
HANDLE hModuleSnap;
ProcessEntry.dwSize = sizeof(PROCESSENTRY32);
ModuleEntry.dwSize = sizeof(MODULEENTRY32);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//給系統內的所有程序拍一個快照
BOOL bRet = Process32First(hProcessSnap,&ProcessEntry);// 遍歷程序快照,輪流顯示每個程序的資訊,先獲得第一個
while(bRet)
printf("\n%s\n",ProcessEntry.szExeFile);//輸出該程序可執行檔名(包括路徑)
Sleep(200);
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,ProcessEntry.th32ProcessID);//迴圈給每個程序的所有模組拍一個快照
bRet = Module32First(hModuleSnap,&ModuleEntry);// 遍歷模組快照,輪流顯示每個模組的資訊,先獲得第一個
printf("\t%s\n",ModuleEntry.szExePath);
bRet = Module32Next(hModuleSnap,&ModuleEntry);//下一個模組
}
bRet = Process32Next(hProcessSnap,&ProcessEntry);//下一個程序
#include <windows.h>
#include <stdio.h>
#include <tlhelp32.h>
void main()
{
PROCESSENTRY32 ProcessEntry = { 0 };
MODULEENTRY32 ModuleEntry = { 0 };
HANDLE hProcessSnap;
HANDLE hModuleSnap;
ProcessEntry.dwSize = sizeof(PROCESSENTRY32);
ModuleEntry.dwSize = sizeof(MODULEENTRY32);
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);//給系統內的所有程序拍一個快照
BOOL bRet = Process32First(hProcessSnap,&ProcessEntry);// 遍歷程序快照,輪流顯示每個程序的資訊,先獲得第一個
while(bRet)
{
printf("\n%s\n",ProcessEntry.szExeFile);//輸出該程序可執行檔名(包括路徑)
Sleep(200);
hModuleSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,ProcessEntry.th32ProcessID);//迴圈給每個程序的所有模組拍一個快照
bRet = Module32First(hModuleSnap,&ModuleEntry);// 遍歷模組快照,輪流顯示每個模組的資訊,先獲得第一個
while(bRet)
{
printf("\t%s\n",ModuleEntry.szExePath);
Sleep(200);
bRet = Module32Next(hModuleSnap,&ModuleEntry);//下一個模組
}
bRet = Process32Next(hProcessSnap,&ProcessEntry);//下一個程序
}