/* Get Process Name from Process ID. */ /* Build: cl /EHsc EnumProcesses.cpp psapi.lib */ #include <stdio.h> #include <windows.h> #include <psapi.h> #define N 1024 int main() { DWORD idProcess[N]; DWORD cb = sizeof(DWORD) * N; DWORD cbNeeded; HMODULE hModule; DWORD cbReturned; WCHAR szBasename[N]; if (EnumProcesses(idProcess, cb, &cbNeeded)) { printf_s("Process ID : Process Name\n"); DWORD* p = idProcess; int n = cbNeeded / sizeof(DWORD); for (int i = 0; i < n; i++) { HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, idProcess[i]); if (hProc == NULL) continue; if (EnumProcessModules(hProc, &hModule, sizeof(hModule), &cbReturned )) { ZeroMemory(szBasename, sizeof(szBasename)); if (GetModuleBaseName(hProc, hModule, (LPSTR)szBasename, sizeof(szBasename)) != 0) { printf_s("%d : %s\n", idProcess[i], szBasename); } } CloseHandle(hProc); } } else { printf_s("Failed.\n"); } return 0; }
広告