Как по имени exe-файла узнать pid процесса, если он запущен?
Автор: OlegGG
Исходная ссылка: - - -
Оооооочень давно я написал вот эту функцию:
bool GetProcessByExeName(DWORD* Pid,AnsiString ExeName)
{
HANDLE hProcessSnap = NULL;
PROCESSENTRY32 pe32 = {0};
AnsiString temp="";
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPALL, NULL);
if(hProcessSnap == (void*)-1)
{
MessageBox(NULL, "oblom", "oblom", MB_OK|MB_ICONWARNING|MB_SYSTEMMODAL);
return false;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
if(Process32First(hProcessSnap,&pe32)) temp=pe32.szExeFile;
if((temp.UpperCase()).Pos(ExeName))
{
*Pid= pe32.th32ProcessID;
CloseHandle (hProcessSnap);
return true;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
while(Process32Next(hProcessSnap,&pe32))
{
temp=pe32.szExeFile;
if((temp.UpperCase()).Pos(ExeName))
{
*Pid= pe32.th32ProcessID;
CloseHandle(hProcessSnap);
return true;
}
pe32.dwSize=sizeof(PROCESSENTRY32);
}
CloseHandle(hProcessSnap);
*Pid=0;
return false;
}
|