// 返回TRUE成功FALSE失败。 szName进程名称,大小写敏感。 ProcessID获取到的进程ID。
BOOL GetProcessID(const CString& szName, DWORD& ProcessID)
{
//获取进程快照
HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);// 创建快照
if (hSnapshot == INVALID_HANDLE_VALUE)
{
return FALSE;
}
PROCESSENTRY32 processList;
processList.dwSize=sizeof(PROCESSENTRY32);
BOOL bResult=Process32First(hSnapshot,&processList);
BOOL bReturn=FALSE;
while(bResult)
{
CString str=processList.szExeFile; // 进程名称
if(str==szName)
{
ProcessID = processList.th32ProcessID; // 进程ID
bReturn=TRUE;
bResult=FALSE;
break;
}
else
{
bResult=Process32Next(hSnapshot,&processList);
}
}
//清除hSnapshot对象
::CloseHandle(hSnapshot);
// 注意,在Win NT中,要删除快照,使用CloseHandle函数;
// 在Win CE中,要删除快照,使用CloseToolhelp32Snapshot函数。
return bReturn;
}
获取进程ID
于 2013-12-11 17:11:27 首次发布