salut Francky,
Tu m'escuses pour avoir prendre du temps à te repondre. c'est la fête. j'ai pas eu le temps de surfer. d'ailleurs je profite pour dire Joyeux Nouvel An à tous les membres de ce site.
voilà le code:
var
ProcListExec : TProcessentry32;
PrhListExec : Thandle;
Continu : Boolean;
isStarted : Boolean;
HandleProcessCourant : Cardinal;
PathProcessCourant : string;
ProcessCourant :String;
begin
// Liste des applications en cours d'exécution
// Initialisation des variables et récuperation de la liste des process
ProcListExec.dwSize:=sizeof(ProcListExec);
Continu := True;
isStarted := False;
Try
// Récupére la liste des process en cours d'éxécution au moment de l'appel
PrhListExec:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
if (PrhListExec <> INVALID_HANDLE_VALUE)
then
begin
//On se place sur le premier process
Process32First(PrhListExec,ProcListExec);
// Tant que le process recherché n'est pas trouvé et qu'il reste
// des process dans la liste, on parcourt et analyse la liste
while Continu do
begin
ProcessCourant := Uppercase(ExtractFileName(ProcListExec.szExeFile));
ProcessCourant := ChangeFileExt(ProcessCourant,'');
HandleProcessCourant := ProcListExec.th32ProcessID;
PathProcessCourant := ExtractFilepath(ProcListExec.szExeFile);
// Recherche le process suivant dans la liste
Continu := Process32Next(PrhListExec,ProcListExec);
// Termine le process en indiquant le code de sortie zéro
TerminateProcess(OpenProcess(PROCESS_TERMINATE,False,HandleProcessCourant),0);
Sleep(500);
// Laisse le temps au process en cours de suppression de s'arrêter
end;
end;
Finally
CloseHandle(PrhListExec); // Libére les ressources
end;
end;
|