HANDLE hSnapshot = NULL; PROCESSENTRY32 processinfo ; processinfo.dwSize = sizeof (processinfo) ;
//创建镜像 hSnapshot = CreateToolhelp32Snapshot (TH32CS_SNAPPROCESS, 0) ;
if ( NULL == hSnapshot) { return -1; }
BOOL bStatus = Process32First( hSnapshot, &processinfo) ; wstring wstrProcessInfo = L""; TCHAR tchBuf[500] = { 0 }; DOUBLE dProcessID = 0; HANDLE hProcess = 0; while ( bStatus) { if ( 0 == dProcessID) { wstrProcessInfo = processinfo.szExeFile;//保存结果(第一个进程名称) } else { wstrProcessInfo += processinfo.szExeFile;//保存结果 } wstrProcessInfo += L","; dProcessID = processinfo.th32ProcessID;//进程id swprintf( tchBuf, L"%0.0f", dProcessID); wstrProcessInfo += tchBuf; wstrProcessInfo += L",";
hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, processinfo.th32ProcessID); GetModuleFileName( (HMODULE)hProcess, tchBuf, 256); //路径 wstrProcessInfo += tchBuf; wstrProcessInfo += L"|"; CloseHandle( hProcess); bStatus = Process32Next( hSnapshot, &processinfo);
}
CloseToolhelp32Snapshot( hSnapshot);