代码如下:
/***************************************************/
/* 函数: 遍历进程信息
/* 参数:进程名称 例如: aaa.exe
/* 返回: 无
/* 创建人: 日期 内容
/* 金胖胖 2015年2月26日 新建
/***************************************************/
void CUIConsoleDlg::GetAllProcessInfo(char* szExeFile)
{
char szprid[MAX_PATH];
memset(szprid,0,MAX_PATH);
HANDLE hSnap = NULL;
PROCESSENTRY32 pe = { sizeof(PROCESSENTRY32) };
hSnap = ::CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); //创建快照
if( INVALID_HANDLE_VALUE == hSnap )
{
AfxMessageBox("创建快照失败");
} if (!::Process32First(hSnap,&pe))
{
::CloseHandle( hSnap );
AfxMessageBox("Process32First error");
} do
{
if (!strcmp(szExeFile,pe.szExeFile))
{
// 此处有用的为 进程名
// pe.th32ProcessID 进程ID
// pe.szExeFile 进程名
// 可以添加一些处理
} } while (::Process32Next(hSnap, &pe));
::CloseHandle( hSnap );
}
另外可以通过进程ID得到进程句柄
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID);