Handle & Processus [Résolu]

flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 5 août 2006 à 14:16 - Dernière réponse : flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention
- 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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cptpingu 3794 Messages postés dimanche 12 décembre 2004Date d'inscription 10 juin 2018 Dernière intervention - 5 août 2006 à 15:30
3
Merci
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.

Merci cptpingu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de cptpingu
Meilleure réponse
DRJEROME 447 Messages postés jeudi 9 janvier 2003Date d'inscription 5 février 2015 Dernière intervention - 6 août 2006 à 08:44
3
Merci
bonjour,

essaie :

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

DrJerome

Merci DRJEROME 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de DRJEROME
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 5 août 2006 à 16:22
0
Merci
Merci beaucoup pour ton aide !

Une derniere question : coment on fait pour modifier la caption d'une form avec son handle ?
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 5 août 2006 à 16:25
0
Merci
Et ton   tagPROCESSENTRY32 = packed record c'est yn type non ?
Type tagPROCESSENTRY32 = packed record    ??
Commenter la réponse de flo160fr
cptpingu 3794 Messages postés dimanche 12 décembre 2004Date d'inscription 10 juin 2018 Dernière intervention - 5 août 2006 à 19:25
0
Merci
>> 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.
Commenter la réponse de cptpingu
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 août 2006 à 10:24
0
Merci
Merci a vous deux pour votre aide précieuse ^^
Commenter la réponse de flo160fr
flo160fr 162 Messages postés dimanche 19 novembre 2000Date d'inscription 14 avril 2009 Dernière intervention - 6 août 2006 à 11:41
0
Merci
(au fait pour le handle ça marche pas )
Commenter la réponse de flo160fr

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.