UDF > WinAPIEx > Processes & Synchronization > Processes >


_WinAPI_OpenProcess

Obtient le handle d'un objet de processus existant

#include <WinAPIProc.au3>
_WinAPI_OpenProcess ( $iAccess, $bInherit, $iPID [, $bDebugPriv = False] )

Param�tres

$iAccess Indique l'acc�s � l'objet de processus
$bInherit Indique si le handle retourn� peut �tre h�rit�e
$iPID Indique l'identifiant du processus doit �tre ouvert
$bDebugPriv [optionnel] Certains processus syst�me ne peuvent �tre ouverts que si vous avez le privil�ge de s�curit� de d�bogage.
Si True, la fonction tentera d'ouvrir le processus avec des privil�ges de d�bogage si le processus ne peut pas �tre ouvert avec les privil�ges d'acc�s standard.

Valeur de retour

Succ�s: Retourne le handle de l'objet processus.
�chec: D�finit @error <> 0.

En relation

_WinAPI_CloseHandle, _WinAPI_ReadProcessMemory, _WinAPI_WriteProcessMemory

Voir aussi

Consultez OpenProcess dans la librairie MSDN.

Exemple

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

; _WinAPI_CreateProcess() will be the best solution
Local $iPID = Run('cmd.exe /k')
If Not $iPID Then
    Exit
EndIf

; Note, immediately open the process
Local $hProcess
If Number(_WinAPI_GetVersion()) >= 6.0 Then
    $hProcess = _WinAPI_OpenProcess($PROCESS_QUERY_LIMITED_INFORMATION, 0, $iPID)
Else
    $hProcess = _WinAPI_OpenProcess($PROCESS_QUERY_INFORMATION, 0, $iPID)
EndIf
If Not $hProcess Then
    Exit
EndIf

; Wait until the process exists, try enter "exit 6"
While ProcessExists($iPID)
    Sleep(100)
WEnd

ConsoleWrite('Exit code: ' & _WinAPI_GetExitCodeProcess($hProcess) & @CRLF)

_WinAPI_CloseHandle($hProcess)