#include #include #include BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam) { DWORD pid; GetWindowThreadProcessId(hwnd, &pid); HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, pid); if (hProcess != NULL) { HMODULE hMod; DWORD cbNeeded; if (EnumProcessModules(hProcess, &hMod, sizeof(hMod), &cbNeeded)) { char szExeName[MAX_PATH]; if (GetModuleFileNameExA(hProcess, hMod, szExeName, sizeof(szExeName))) { if (strstr(szExeName, ".exe") != NULL) { printf("%s\n", szExeName); } } } CloseHandle(hProcess); } return TRUE; } int main() { EnumWindows(EnumWindowsProc, 0); return 0; }