Výpis seznamu spuštěných procesů ve Windows ve Win API.
#include <stdio.h> #include <windows.h> #include <locale.h> #include <psapi.h> #include <assert.h> int main() { static const size_t max_delka_cesty = static_cast(32768); _wsetlocale(LC_ALL, L"Czech"); DWORD procesy[1024]; HMODULE h_mod[1024]; DWORD velikost; DWORD pocet; HANDLE h_proces; if (EnumProcesses(procesy, sizeof(procesy), &velikost)) { wchar_t* soubor = (wchar_t*)malloc(max_delka_cesty); pocet = velikost / sizeof(DWORD); for (size_t i = 0; i < (size_t)pocet; i++) { h_proces = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, (DWORD)procesy[i]); if (!h_proces) continue; if (EnumProcessModules(h_proces, h_mod, sizeof(h_mod), &velikost)) { if (GetModuleFileNameEx(h_proces, h_mod[0], soubor, max_delka_cesty / sizeof(wchar_t))) { wprintf(L"%s\n", soubor); } } } free(soubor); } printf("hotovo\n"); getchar(); return EXIT_SUCCESS; }