Handle & Processus

Résolu
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009 - 5 août 2006 à 14:16
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009 - 6 août 2006 à 11:41
Bonjour !

Je voudrais savoir :
Comment savoir si un processus est en cours d'execution (avec le nom de l'executable si possible)
Comment obtenir le handle de sa fenetre principale (si il est en cours d'execution)

Merci d'avance

7 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 août 2006 à 15:30
Voila un extrait de l'un de mes programmes. Ces fonctions ont été crée à partir de celles données sur Developpez.com:

  tagPROCESSENTRY32 = packed record
    dwSize: DWORD;               // taille de l'enregistrement
    cntUsage: DWORD;             // Compteur de référence du process, si zéro le process se termine.
    th32ProcessID: DWORD;        // Identifiant du process
    th32DefaultHeapID: DWORD;    // Identifiant de la pile par défaut du process
    th32ModuleID: DWORD;         // Identifiant du module du process
    cntThreads: DWORD;           // Nombre de thread du process
    th32ParentProcessID: DWORD;  // Identifiant du process parent ( 'son créateur' )
    pcPriClassBase: Longint;     // Priorité de base des threads crée par ce process
    dwFlags: DWORD;              // Réservé
    szExeFile: array[0..MAX_PATH - 1] of Char; // le nom de l'exécutable.
  end;

procedure TForm1.ListerLesProcessus(Sender: TObject);
var
 ProcListExec : TProcessentry32;
 PrhListExec : Thandle;
 Continu : Boolean;
 ProcessCourant :String;
begin
CheckListBox1.Clear;
   ProcListExec.dwSize:=sizeof(ProcListExec);
   Continu := True;
 Try
  PrhListExec:=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
  if (PrhListExec <> INVALID_HANDLE_VALUE)
  then
  begin
  Process32First(PrhListExec,ProcListExec);
    while Continu do
    begin
    ProcessCourant := Uppercase(ExtractFileName(ProcListExec.szExeFile));
    ProcessCourant := ChangeFileExt(ProcessCourant,'');
    CheckListBox1.AddItem(ProcessCourant,nil);
    Continu := Process32Next(PrhListExec,ProcListExec);
    end;
  end;
 Finally
   CloseHandle(PrhListExec);
 end;
end;

Si tu regarde bien, cela permet de lister les processus. Donc pour savoir s'il un programme est en cours d'execution fait la liste de tout les programmes en cours et regarde si ton programme est dedans. Pour avoir le Handle, regarde la 2eme procedure c'est dedans.
3
DRJEROME Messages postés 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 5 février 2015
6 août 2006 à 08:44
bonjour,

essaie :

<hr />SetWindowText(tonhandle,'le texte que tu veux');<hr />

DrJerome
3
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
5 août 2006 à 16:22
Merci beaucoup pour ton aide !

Une derniere question : coment on fait pour modifier la caption d'une form avec son handle ?
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
5 août 2006 à 16:25
Et ton   tagPROCESSENTRY32 = packed record c'est yn type non ?
Type tagPROCESSENTRY32 = packed record    ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
5 août 2006 à 19:25
>> Comment on fait pour modifier la caption d'une form avec son handle ?
Je pense que c'est possible, mais je n'ai jamais essayé

>> packet record
C'est comme un "record" mais en compressé. C'est parfois utile notemment pour des requetes réseaux.
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
6 août 2006 à 10:24
Merci a vous deux pour votre aide précieuse ^^
0
flo160fr Messages postés 157 Date d'inscription dimanche 19 novembre 2000 Statut Membre Dernière intervention 14 avril 2009
6 août 2006 à 11:41
(au fait pour le handle ça marche pas )
0
Rejoignez-nous