注:pe.szExeFile有时候是全路经文件名,有时候只是文件名,原因有待考究,或者请哪位高手指教
DWORD GetProcessIdFromName(LPCTSTR name){ PROCESSENTRY32 pe; DWORD id = 0;
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); pe.dwSize = sizeof(PROCESSENTRY32); if( !Process32First(hSnapshot,&pe) ) return 0;
do { pe.dwSize = sizeof(PROCESSENTRY32); if( Process32Next(hSnapshot,&pe)==FALSE ) break; if(strcmp(pe.szExeFile,name) == 0) { id = pe.th32ProcessID; break; }
} while(1);
CloseHandle(hSnapshot);
return id;}