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
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
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
3834
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
20 octobre 2021
124
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