 |
|
 |
|
 |
76 - LISTE DES PROCESS SOUS NT'
|
|
|
|
PRÉSENTATION :
Lister les process sous Windows NT4
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..1023] Of DWORD;
cb: DWORD;
I,
ProcCount: Integer;
hMod: HMODULE;
hProcess: THandle;
ModuleName: Array[0..300] Of 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 <> 0) Then
Begin
EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
FillChar(ModuleName, 300, 0);
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 œuvre intellectuelle protégée par les droits d'auteur. Copyright ©
2003 Bruno Guérangé. Aucune reproduction, même partielle, ne peut être
faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc.
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à
trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.