UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_EnumProcessHandles

�num�re les handles qui appartiennent au processus sp�cifi�

#include <WinAPIProc.au3>
_WinAPI_EnumProcessHandles ( [$iPID = 0 [, $iType = 0]] )

Param�tres

$iPID [optionnel] Le PID du processus. Par d�faut, (0) est le processus actuel.
$iType [optionnel] La valeur associ�e au type d'objets � �num�rer.
Cette valeur d�pend du syst�me d'exploitation. Si ce param�tre est 0 (par d�faut), tous les handles du processus sp�cifi� seront �num�r�s.

Valeur de retour

Succ�s: Retourne le tableau 2D contenant les informations suivantes:
    [0][0] - Nombre de lignes dans le tableau (n)
    [0][1] - Inutilis�
    [n][0] - Handle
    [n][1] - Type (d�pend du syst�me d'exploitation)
    [n][2] - Attributs
    [n][3] - Acc�s
�chec: D�finit @error <> 0, @extended peut contenir le code d'erreur NTSTATUS.

Voir aussi

Consultez ZwQuerySystemInformation dans la librairie MSDN.

Exemple

#include <Array.au3>
#include <ProcessConstants.au3>
#include <WinAPIHObj.au3>
#include <WinAPIProc.au3>

Global Const $PID = @AutoItPID

Local $hSource, $hTarget, $hObject

Local $aData = _WinAPI_EnumProcessHandles($PID)

If IsArray($aData) Then
    $hTarget = _WinAPI_GetCurrentProcess()
    $hSource = _WinAPI_OpenProcess($PROCESS_DUP_HANDLE, 0, $PID)
    If $hSource Then
        For $i = 1 To $aData[0][0]
            $hObject = _WinAPI_DuplicateHandle($hSource, $aData[$i][0], $hTarget, 0, 0, 2)
            If Not @error Then
                $aData[$i][1] = _WinAPI_GetObjectNameByHandle($hObject)
                _WinAPI_CloseHandle($hObject)
            EndIf
        Next
    EndIf
EndIf

_ArrayDisplay($aData, '_WinAPI_EnumProcessHandles')