プロセスハンドル管理クラス
[詳解]
#include <TnbProcessHandle.h>
プロセスハンドル管理クラス
プロセスハンドルを一つ管理します。
プロセス実行もサポートします。
- 必要ファイル
- TnbProcessHandle.h
- 日付
- 07/01/24 新規作成
-
11/11/10 プロセスIDも記憶するようにした
-
12/05/11 EnumProcessesEntry() 新規。
TnbProcessHandle.h の 54 行目に定義があります。
◆ CProcessHandle()
◆ Attach()
void Attach |
( |
HANDLE |
hProcess, |
|
|
HANDLE |
hThread |
|
) |
| |
[設定] アタッチ.
指定のハンドルを管理するようにします。
- 覚え書き
- プロセスID は管理しません。
- 引数
-
hProcess | プロセスハンドル |
hThread | スレッドハンドル |
TnbProcessHandle.h の 177 行目に定義があります。
◆ Create() [1/3]
bool Create |
( |
LPCTSTR |
lpszCommand, |
|
|
CPipe * |
pInputPipe, |
|
|
CPipe * |
pOutputPipe, |
|
|
CPipe * |
pErrorPipe = NULL , |
|
|
bool |
boIsShowWindow = true |
|
) |
| |
[実行] パイプ指定プロセス実行.
- 覚え書き
- stdin stdout strerr を指定します。
- 引数
-
lpszCommand | コマンド。実行ファイル名とオプションを記述。 |
pInputPipe | プロセスへの入力用パイプ(stdin)を指定します。 Open してある必要があります。 また、ここで指定したパイプはプロセス終了まで 破棄、および Stop しないようにしてください。 |
pOutputPipe | プロセスからの出力用パイプ(stdout)を指定します。 Open してある必要があります。 また、ここで指定したパイプはプロセス終了まで 破棄、および Stop しないようにしてください。 |
pErrorPipe | プロセスからのエラー出力用パイプ(stderr)を指定します。 Open してある必要があります。 また、ここで指定したパイプはプロセス終了まで 破棄、および Stop しないようにしてください。
省略するか、NULLを指定すると、 pOutoutPipe を使用します。 |
boIsShowWindow | false ならWindowを非表示状態で起動させます。 |
- 戻り値
-
true | 成功 |
false | 失敗(パイプは一つでもOpen していない場合も失敗します)。 |
TnbProcessHandle.h の 283 行目に定義があります。
◆ Create() [2/3]
bool Create |
( |
LPCTSTR |
lpszExecName, |
|
|
LPCTSTR |
lpszCommand, |
|
|
bool |
boIsShowWindow = true |
|
) |
| |
[実行] プロセス実行
- 引数
-
lpszExecName | 実行ファイル名 |
lpszCommand | コマンドライン |
boIsShowWindow | false ならWindowを非表示状態で起動させます。 |
- 戻り値
-
TnbProcessHandle.h の 230 行目に定義があります。
◆ Create() [3/3]
bool Create |
( |
LPCTSTR |
lpszExecName, |
|
|
LPCTSTR |
lpszCommand, |
|
|
STARTUPINFO & |
si |
|
) |
| |
◆ Detach()
◆ EnumProcesses() [1/2]
static bool EnumProcesses |
( |
CWorkMemT< DWORD > & |
_ids | ) |
|
|
static |
[取得] プロセスID一覧取得
- 覚え書き
- マクロ "_TnbPROCESS_EnumProcesses_ENABLE" が定義されていないと使用できません。
- 引数
-
- 戻り値
-
true | 成功。 _ids に結果が格納されます。 |
false | 失敗。 |
TnbProcessHandle.h の 377 行目に定義があります。
◆ EnumProcesses() [2/2]
static bool EnumProcesses |
( |
CWorkMemT< DWORD > & |
_ids, |
|
|
LPCTSTR |
lpszProcessName |
|
) |
| |
|
static |
[取得] プロセスID一覧取得 指定のプロセス名のプロセスIDを起動が新しい順に一覧します。
- 覚え書き
- マクロ "_TnbPROCESS_EnumProcesses_ENABLE" が定義されていないと使用できません。
- 引数
-
[out] | _ids | プロセスID一覧 |
[in] | lpszProcessName | プロセス名。 'abc.exe' のように、フル名を指定すること |
- 戻り値
-
true | 成功。 _ids に結果が格納されます。 |
false | 失敗。 |
TnbProcessHandle.h の 400 行目に定義があります。
◆ EnumProcessesEntry()
static CVectorT< PROCESSENTRY32 > EnumProcessesEntry |
( |
void |
| ) |
|
|
static |
[取得] プロセス情報一覧取得
- 覚え書き
- マクロ "_TnbPROCESS_EnumProcesses_ENABLE" が定義されていないと使用できません。
- 戻り値
- 一覧
TnbProcessHandle.h の 444 行目に定義があります。
◆ GetExitCode()
LONGLONG GetExitCode |
( |
void |
| ) |
const |
◆ GetProcessHandle()
HANDLE GetProcessHandle |
( |
void |
| ) |
const |
[取得] プロセスハンドル取得
- 戻り値
-
INVALID_HANDLE_VALUE | 管理ハンドルなし |
INVALID_HANDLE_VALUE以外 | プロセスハンドル |
TnbProcessHandle.h の 129 行目に定義があります。
◆ GetProcessId()
DWORD GetProcessId |
( |
void |
| ) |
const |
◆ GetProcessName()
[取得] プロセス名取得
- 覚え書き
- マクロ "_TnbPROCESS_EnumProcesses_ENABLE" が定義されていないと使用できません。
- 引数
-
[out] | _name | プロセス名 |
[in] | processId | プロセスID |
[out] | pCreateTime | そのプロセスの作成時間が格納されます。要らない場合 NULL を指定します。 |
- 戻り値
-
true | 成功。 _name に結果が格納されます。 |
false | 失敗。 |
TnbProcessHandle.h の 345 行目に定義があります。
◆ GetThreadHandle()
HANDLE GetThreadHandle |
( |
void |
| ) |
const |
[取得] スレッドハンドル取得
- 戻り値
-
INVALID_HANDLE_VALUE | 管理ハンドルなし |
INVALID_HANDLE_VALUE以外 | スレッドハンドル |
TnbProcessHandle.h の 139 行目に定義があります。
◆ IsAlive()
bool IsAlive |
( |
void |
| ) |
const |
◆ operator HANDLE()
operator HANDLE |
( |
void |
| ) |
const |
[取得] プロセスハンドル取得
- 戻り値
-
INVALID_HANDLE_VALUE | 管理ハンドルなし |
INVALID_HANDLE_VALUE以外 | プロセスハンドル |
TnbProcessHandle.h の 119 行目に定義があります。
◆ Terminate()
bool Terminate |
( |
UINT |
uExitCode = 0 | ) |
|
[通知] 強制終了.
管理しているプロセスをターミネートします。
- 引数
-
uExitCode | 終了コード。省略すると0になります。 |
- 戻り値
-
TnbProcessHandle.h の 70 行目に定義があります。
◆ TerminateProcessId()
static bool TerminateProcessId |
( |
DWORD |
processId, |
|
|
UINT |
uExitCode = 0 |
|
) |
| |
|
static |
[処理] プロセス終了.
プロセスID でプロセスを終了できます。 プロセスハンドルがわかる場合、 API の ::TerminateProcess() を使用します。
- 引数
-
processId | プロセスID |
uExitCode | 終了コード。省略すると 0 になります。 |
- 戻り値
-
TnbProcessHandle.h の 325 行目に定義があります。
◆ WaitForExit()
DWORD WaitForExit |
( |
DWORD |
dwWait = INFINITE | ) |
|
[処理] 終了待ち.
管理しているプロセスの終了を待ちます。
- 引数
-
dwWait | タイムアウト時間を、ミリ秒で指定します。INFINITE を指定すると終了するまで待ち続けます。 |
- 戻り値
-
WAIT_ABANDONED | プロセスを管理していないか,対象のプロセスが既にない。 |
WAIT_OBJECT_0 | 終了したことを意味します(既に終了していた場合も含む) 。 |
WAIT_TIMEOUT | タイムアウト時間が経過したことを意味します。 |
TnbProcessHandle.h の 88 行目に定義があります。