protected void Kill();
const HANDLE opCall();
protected PROCESSINFORMATION* Information;
PROCESSINFORMATION info();
enum CREATE;
BREAKAWAY_FROM_JOB
Windows 2000:あるプロセスが特定のジョブに関連付けられている場合でも、その子プロセスをそのジョブに関連付けません。呼び出し側プロセスがどのジョブにも関連付けられていない場合、このフラグには意味はありません。呼び出し側が特定のオブジェクトに関連付けられている場合、そのオブジェクトは JOBOBJECT_BASIC_LIMIT_INFORMATION 構造体の LimitFlags メンバで JOB_OBJECT_LIMIT_BREAKAWAY_OK を指定しなければなりません。さもないと、CreateProcess 関数は失敗します。
DEFAULT_ERROR_MODE
新しいプロセスは、呼び出し側プロセスのエラーモードを継承しません。代わりに、CreateProcess 関数は新しいプロセスに、現在の既定のエラーモードを割り当てます。アプリケーションは 関数を呼び出すことにより、現在の既定のエラーモードを設定できます。マルチスレッド化されたシェルアプリケーションが、ハードエラーを無効にして動作する場合、このフラグは特に役立ちます。CreateProcess 関数の既定の動作では、新しいプロセスは、呼び出し側のエラーモードを継承します。このフラグを指定すると、この既定の動作は無効になります。
NEW_CONSOLE
新しいプロセスは、親のコンソールを継承せず、新しいコンソールを持ちます。DETACHED_PROCESS フラグと同時に指定することはできません。
NEW_PROCESS_GROUP
新しいプロセスを、新しいプロセスグループのルートプロセスにします。このルートプロセスのすべての子孫プロセスは、このプロセスグループを形成します。新しいプロセスグループのプロセス識別子は、lpProcessInformation パラメータに格納されたプロセス識別子と同じ値です。 関数はプロセスグループを使って、Ctrl+C または Ctrl+Break の信号を、複数のコンソールプロセスからなるグループへ送信します。
NO_WINDOW
Windows NT/2000:このフラグは、コンソールアプリケーションを起動する場合にのみ有効です。このフラグを指定すると、コンソールウィンドウなしでアプリケーションを実行します。
SEPARATE_WOW_VDM
Windows NT/2000:このフラグは、16 ビット版 Windows ベースのアプリケーションを起動する場合にのみ有効です。このフラグを指定すると、新しいプロセスはプライベート VDM(仮想 DOS マシン)内で動作します。既定では、16 ビット版 Windows ベースのすべてのアプリケーションが 1 つの共有 VDM 内で動作します。これらのアプリケーションを個別に動作させると、どれか 1 つのアプリケーションがクラッシュした場合でも、1 つの VDM が終了するだけで済むという利点があります。他の VDM 内で動作している他のすべてのプログラムは、正常に動作を続けます。また、16 ビット版 Windows ベースのアプリケーションを個別の VDM 内で動作させると、個別の入力キューを割り当てることができます。これは、1 つのアプリケーションが瞬間的に応答を停止した場合でも、他の VDM 内で動作しているアプリケーションは引き続き入力を受け取れることを意味します。逆に、各アプリケーションを個別の VDM 内で動作させると、多くのメモリを余分に消費するという欠点があります。16 ビット版アプリケーションを個別の VDM で動作させるようユーザーが要求した場合にのみ、このフラグを使うべきです。
SHARED_WOW_VDM
Windows NT/2000:このフラグは、16 ビット版 Windows ベースのアプリケーションを起動する場合にのみ有効です。WIN.INI ファイルの [Windows] セクションの DefaultSeparateVDM スイッチが TRUE に設定されている場合、このフラグを指定すると、CreateProcess 関数はそのスイッチを無効にし、新しいプロセスを共有 VDM 内で動作させます。
SUSPENDED
プライマリスレッドをサスペンド状態にして、新しいプロセスを作成します。ResumeThread 関数を呼び出すまで、そのスレッドを開始させません。
UNICODE_ENVIRONMENT
lpEnvironment パラメータが指す環境ブロックの形式を指定します。このフラグを指定すると、その環境ブロックは Unicode 文字を使います。このフラグを指定しなかった場合、ANSI 文字を使います。
DEBUG_PROCESS
このフラグを指定すると、呼び出し側プロセスをデバッガ、新しいプロセスをデバッグ対象として扱います。システムは、デバッグ対象のプロセス内で発生するすべてのデバッグイベントを呼び出し側スレッドへ通知します。このフラグを指定してプロセスを作成すると、呼び出し側スレッド(CreateProcess 関数を呼び出したスレッド)だけが 関数を呼び出せます。Windows 95/98:新しいプロセスが 16 ビット版アプリケーションの場合、このフラグは有効ではありません。
DEBUG_ONLY_THIS_PROCESS
呼び出し側プロセスがデバッグ対象であるときに、このフラグを指定せずに CreateProcess 関数を呼び出すと、呼び出し側プロセスを扱っているデバッガは、新しいプロセスもデバッグ対象とします。呼び出し側プロセスがデバッグ対象ではない場合、デバッグ関連の動作は発生しません。
DETACHED_PROCESS
コンソールプロセスを対象としたフラグであり、新しいプロセスに、親プロセスのコンソールへのアクセスを許可しません。新しいプロセスは、 関数を使って新しいコンソールを作成できます。CREATE_NEW_CONSOLE フラグと同時に指定することはできません。
enum PRIORITY;
NORMAL
通常クラス。特別なスケジューリングを必要としない、一般的なプロセスであることを指定します。
IDLE
アイドルクラス。システムがアイドル状態のときにだけスレッドを実行するプロセスであることを指定します。アイドルクラスの優先権は子プロセスに引き継がれます。
HIGH
優先クラス。すぐに実行されなければならないタイムクリティカルなタスクを実行するプロセスであることを指定します。この優先度クラスのプロセスに属するスレッドは、通常クラスやアイドルクラスのプロセスに属するスレッドのより優先して実行されます。このクラスのアプリケーションはほぼすべての CPU 空き時間を占有可能となるため、このクラスを設定する場合は十分に注意する必要があります。
REALTIME
リアルタイムクラス。最も高い優先順位クラスを持つプロセスであることを指定します。この優先度クラスのプロセスに属するスレッドは、他のすべてのプロセス(システムの重要なタスクを実行するOS のプロセスも含む)に属するスレッドのより優先して実行されます。
BELOW_NORMAL
Windows 2000/XP: IDLE_PRIORITY_CLASS 以上で NORMAL_PRIORITY_CLASS 以下の優先度を持つことを示します。
ABOVE_NORMAL
Windows 2000/XP: NORMAL_PRIORITY_CLASS 以上で HIGH_PRIORITY_CLASS 以下の優先度を持つことを示します。
this(HANDLE Handle
, bool Suicide
);
this(HANDLE hProcess
, HANDLE hThread
, bool Suicide
);
this(in Text ApplicationName
, in Text CommandLine
, in Text WorkFolder
, const SECURITY* ProcessSecurity
, const SECURITY* ThreadSecurity
, bool Inheritance
, PRIORITY Priority
, CREATE Create
, TextList TextNullList
, ref const STARTUPINFORMATION StartupInformation
);
this(in Text ApplicationName
, in Text CommandLine
, in Text WorkFolder
, ref const SECURITY ProcessSecurity
, ref const SECURITY ThreadSecurity
, bool Inheritance
, PRIORITY Priority
, CREATE Create
, TextList TextNullList
, ref const STARTUPINFORMATION StartUpInfomation
);
this(in Text ApplicationName
, in Text CommandLine
, in Text WorkFolder
, ref const STARTUPINFORMATION StartUpInfomation
);
const DWORD exitCode();
const PRIORITY priority();
bool priority(PRIORITY Priority
);