Borland C ++ Builder FAQ
The content The last update: 12/12/2008

How by name an exe-file to learn pid process if it is launched?

The author: OlegGG
The initial link: - - -

Оооооочень for a long time I wrote here this function:
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; 
}