Non preoccupatevi di rispondere, ho risolto. Vi posto il codice delle due funzioni necessarie per la risoluzione del problema
Questa è la funzione principale alla quale viene passato il parametro ApplicationName di tipo String (nel mio caso è 'IEXPLORE.EXE')
codice:
Function IsApplicationRunning ;
Var
Data : TProcessEntry32 ;
Handler : THandle ;
ProcessoTrovato : Boolean ;
Begin
ProcessoTrovato := False ;
Try
Handler := CreateToolHelp32Snapshot ( TH32CS_SNAPALL, 0 ) ;
Data.dwSize := SizeOf ( TPROCESSENTRY32 ) ;
If Process32First( Handler, Data )
Then Begin
While Process32Next ( Handler, Data )
Do Begin
If ( GetName ( Data ) = ApplicationName )
Then Begin
ProcessoTrovato := True ;
End;
End;
End;
Except
//
End;
IsApplicationRunning := ProcessoTrovato ;
End;
Questa è l'implementazione della funzione GetName a cui passo il parametro Data di tipo TProcessEntry32
codice:
Function GetName ;
Var
Posizione : Byte ;
NomeProcesso : String ;
RicercaTerminata : Boolean ;
Begin
NomeProcesso := '' ;
Posizione := 0 ;
For Posizione := 0 to 11 //11 è la lunghezza del nome del processo
Do Begin //che si vuole ricercare
NomeProcesso := NomeProcesso + Data.szExeFile [ Posizione ] ;
End;
GetName := NomeProcesso ;
End;
Per il corretto funzionamento bisogna includere le librerie ShellApp e TlHelp32
Ciao a tutti