// 获取进程ID
DWORD GetProcessIdByName(LPCWSTR processName)
{
HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 pe;
pe.dwSize = sizeof(PROCESSENTRY32);
if(!Process32First(hSnapShot,&pe))
{
return NULL;
}
BOOL clearprocess = FALSE;
while (Process32Next(hSnapShot,&pe))
{
if(!_tcsicmp(processName, pe.szExeFile))
{
::CloseHandle(hSnapShot);
return pe.th32ProcessID;
}
}
::CloseHandle(hSnapShot);
return -1;
}
Process32First 返回FALSE, 采用的是"Unicode字符集"
sizeof(PROCESSENTRY32): 1060, sizeof(pe): 1060
查看了正常情况下的值:
pe.dwSize = 556;
返回TRUE.
原因未知.