VC中遍历进程并获取进程信息

代码如下:

/***************************************************/
/*  函数: 遍历进程信息
/*  参数:进程名称 例如: 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);

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。