Win32API: OpenProcess

指定したプロセスIDに対するプロセスハンドルを取得します。


定義
Declare Function OpenProcess Lib "kernel32" _
         (dwDesiredAccess As DWord, _
          bInheritHandle As Long, _
          dwProcessId As DWord) As HANDLE
dwDesiredAccess
プロセスへのアクセスに関するオプションを、以下の組み合わせで指定します。
フラグ説明
PROCESS_ALL_ACCESSすべてのアクセス権を有効にします。
PROCESS_CREATE_PROCESS内部で利用されます。
PROCESS_CREATE_THREAD取得したハンドルを CreateRemoteThread 関数で使用できるようにします。
PROCESS_DUP_HANDLE取得したハンドルを DuplicateHandle 関数で使用できるようにします。
PROCESS_QUERY_INFORMATION取得したハンドルをGetExitCodeProcess関数、及びGetPriorityClass関数で使用できるようにします。
PROCESS_SET_QUOTA取得したハンドルを AssignProcessToJobObject 関数、及び SetProcessWorkingSetSize 関数で使用できるようにします。
PROCESS_SET_INFORMATION取得したハンドルをSetPriorityClass関数で使用できるようにします。
PROCESS_TERMINATE取得したハンドルをTerminateProcess関数で使用できるようにします。
PROCESS_VM_OPERATION取得したハンドルを VirtualProtectEx 関数、及び WriteProcessMemory 関数で使用できるようにします。
PROCESS_VM_READ取得したハンドルを ReadProcessMemory 関数で使用できるようにします。
PROCESS_VM_WRITE取得したハンドルを WriteProcessMemory 関数で使用できるようにします。
SYNCHRONIZE取得したハンドルを待機関数で使用できるようにします(WindowsNT系OSのみ)。

bInheritHandle
TRUE を指定すると、プロセス作成時に取得したハンドルを継承します。それ以外は FALSE を指定します。

dwProcessId
プロセスIDを指定します。

戻り値

関数が成功すると、プロセスハンドルが返ります。失敗すると 0 が返ります。

解説

ハンドルが不要になったら、CloseHandle関数でメモリから解放する必要があります。

環境情報

インクルード ファイル: api_system.sbp 内で定義済み
DLLファイル: kernel32.dll


CloseHandle関数CreateProcess関数