Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
FORUMS DELPHI F.A.Q DELPHI TUTORIELS DELPHI LIVRES COMPOSANTS SOURCES DEFI TELECHARGEZ DELPHI TV
Nono40.developpez.com
Le petit coin du web de Nono40
SOURCES ARTICLES NONOVISU ACCUEIL NOUVELLES
Retour à l'accueil
76 - LISTE DES PROCESS SOUS NT'

PRÉSENTATION : Lister les process sous Windows NT4
ZIP : Téléchargez le zip : miroir 1 , miroir 2 APERÇUS :

NOTES : La librairie ToolHelp n'est pas disponible sous Windows NT4, cette méthode permet de pallier à ce problème et obtenir la liste des process sous NT.
Cette procédure fonctionne aussi avec Windows 2000 et Windows XP.

CODE :
Procedure TForm1.FormActivate(Sender: TObject);
Var
  PIDArray:   Array[0..1023Of DWORD;
  cb:         DWORD;
  I,
  ProcCount:  Integer;
  hMod:       HMODULE;
  hProcess:   THandle;
  ModuleName: Array[0..300Of Char;
Begin
  // Effacement de la liste
  Liste.Clear;

  // Recupération de la liste de tous les processus sous NT4
  EnumProcesses(@PIDArray, SizeOf(PIDArray), cb);
  ProcCount := cb Div SizeOf(DWORD);
  For I := 0 To ProcCount - 1 Do
  Begin
    If PIDArray[I] = 0 Then ModuleName := '[Idle]'
    Else
    Begin
      hProcess := OpenProcess(PROCESS_QUERY_INFORMATION Or PROCESS_VM_READ, False, PIDArray[I]);
      If (hProcess <> 0Then
      Begin
        EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
        FillChar(ModuleName, 3000);
        ModuleName := 'System';
        GetModuleBaseName(hProcess, hMod, ModuleName, SizeOf(ModuleName));
        CloseHandle(hProcess);
      End
      Else ModuleName := 'Erreur';
    End;


    With Liste.Items.Add Do
    Begin
      // Affichage de chaque process
      Caption:=IntToHex(PIDArray[I],8);
      SubItems.Add(ModuleName);

      // Data va conserver le ProcessID afin de pouvoir
      // en demander la fermeture par la suite
      Data:=Pointer(PIDArray[I]);
    End;
  End;
End;

Les sources présentées sur cette page sont libres de droits, et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © 2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsables bénévoles de la rubrique Delphi : Nono40 et Pedro - Contacter par EMail :
Vos questions techniques : forum d'entraide Delphi - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.