#include #include #include #include void GetProcessList(const TCHAR* name) { DWORD aProcesses[1024], cbNeeded, cProcesses; if (!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded)) return; cProcesses = cbNeeded / sizeof(DWORD); for (DWORD i = 0; i < cProcesses; i++) { if (aProcesses[i] != 0) { HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, aProcesses[i]); if (hProcess != NULL) { TCHAR szProcessName[MAX_PATH] = TEXT(""); if (GetProcessImageFileName(hProcess, szProcessName, MAX_PATH) != 0) { // Extract the file name from the path TCHAR* pszFileName = _tcsrchr(szProcessName, '\\'); if (pszFileName != NULL) { pszFileName++; if (_tcsicmp(pszFileName, name) == 0) { _tprintf(TEXT("Process ID: %u\n"), aProcesses[i]); } } } CloseHandle(hProcess); } } } } int main() { GetProcessList(L"chrome.exe"); return 0; }