<Return[O]><Top>

OpenProcess

Declare Function Api_OpenProcess& Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess&, ByVal bInheritHandle&, ByVal dwProcessID&)

Declare Function OpenProcess& Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long

既存のプロセスオブジェクトのハンドルを開く。

パラメータ
dwDesiredAccess
    プロセスオブジェクトで認められるアクセス方法を指定する。

    セキュリティ機能をサポートしているシステムでは、このアクセス権を、アクセス対象のプロセスに関係するセキュリティ記述子と比較する。

    STANDARD_RIGHTS_REQUIRED アクセスフラグ、あるいは次のフラグの 1 つまたは複数を指定できる。

    値                                                     

説明                                                                                                                   

    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

 

Windows NT/2000:このプロセスが終了するのを待つために、wait functions(待機関数)がこ

のプロセスのハンドルを使うことを認める。

bInheritHandle
    現在のプロセスが新しいプロセスを作成する際に、新しいプロセスが、取得されたハンドルを継承できるかどうかを指定する。

    TRUE を指定すると、新しいプロセスはそのハンドルを継承する。
dwProcessId
    開くべきプロセスの識別子を指定する。
 

戻り値
    関数が成功すると、指定したプロセスの、既に開いているハンドルが返る。
    関数が失敗すると、NULL が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    OpenProcess 関数で適切なアクセス権を指定すると、wait functions(待機関数)のようにプロセス識別子を必要とする任意の関数は、   

    OpenProcess 関数を使って取得したハンドルを利用できる。
    ハンドルが不要になったときは、CloseHandle 関数を使う。