Obtient le handle d'un objet de processus existant
#include <WinAPIProc.au3>
_WinAPI_OpenProcess ( $iAccess, $bInherit, $iPID [, $bDebugPriv = False] )
$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. |
Succ�s: | Retourne le handle de l'objet processus. |
�chec: | D�finit @error <> 0. |
_WinAPI_CloseHandle, _WinAPI_ReadProcessMemory, _WinAPI_WriteProcessMemory
Consultez OpenProcess dans la librairie MSDN.
#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)