Win32_ProcessStartup クラス
Win32_ProcessStartup抽象 WMI クラスは、Windows ベースのプロセスのスタートアップ構成を表します。 クラスはメソッド型の定義として定義されます。つまり、Win32_Process クラスの Create メソッドに情報を渡す場合にのみ使用されます。
次の構文は、マネージド オブジェクト フォーマット (MOF) コードを簡素化しており、継承されたすべてのプロパティを含んでいます。
構文
[Abstract, UUID("{8502C4DB-5FBB-11D2-AAC1-006008C78BC7}"), AMENDMENT]
class Win32_ProcessStartup : Win32_MethodParameterClass
{
uint32 CreateFlags;
string EnvironmentVariables[];
uint16 ErrorMode = 1;
uint32 FillAttribute;
uint32 PriorityClass;
uint16 ShowWindow;
string Title;
string WinstationDesktop;
uint32 X;
uint32 XCountChars;
uint32 XSize;
uint32 Y;
uint32 YCountChars;
uint32 YSize;
};
メンバー
Win32_ProcessStartup クラスには、次の種類のメンバーがあります。
プロパティ
Win32_ProcessStartup クラスには、これらのプロパティがあります。
-
CreateFlags
-
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセス関数とスレッド関数|CreateProcess|dwCreationFlags")
優先度クラスとプロセスの作成を制御する追加の値。 次の作成値は、特に説明されている場合を除き、任意の組み合わせで指定できます。
-
-
Debug_Process (1)
-
このフラグが設定されている場合、呼び出し元のプロセスはデバッガーとして扱われ、新しいプロセスはデバッグ中です。 システムは、デバッグ中のプロセスで発生するすべてのデバッグ イベントをデバッガーに通知します。
-
Debug_Only_This_Process (2)
-
このフラグが設定されておらず、呼び出し元プロセスがデバッグ中の場合、新しいプロセスはデバッグ中の別のプロセスになります。 呼び出し元のプロセスがデバッグ中のプロセスでない場合、デバッグ関連のアクションは発生しません。
-
Create_Suspended (4)
-
新しいプロセスのプライマリ スレッドは中断状態で作成され、 ResumeThread メソッドが呼び出されるまで実行されません。
-
Detached_Process (8)
-
コンソール プロセスの場合、新しいプロセスは親プロセスのコンソールにアクセスできません。 Create_New_Console フラグが設定されている場合、このフラグは使用できません。
-
Create_New_Console (16)
-
この新しいプロセスには、親コンソールを継承するのではなく、新しいコンソールがあります。 このフラグは 、Detached_Process フラグでは使用できません。
-
Create_New_Process_Group (512)
-
この新しいプロセスは、新しいプロセス グループのルート プロセスです。 プロセス グループには、このルート プロセスの子孫であるすべてのプロセスが含まれます。 新しいプロセス グループのプロセス識別子は、Win32_Process クラスの ProcessID プロパティで返されるプロセス識別子と同じです。 プロセス グループは GenerateConsoleCtrlEvent メソッドによって使用され、Ctrl + C シグナルまたは Ctrl + BREAK シグナルをコンソール プロセスのグループに送信できます。
-
Create_Unicode_Environment (1024)
-
EnvironmentVariables プロパティに一覧表示されている環境設定では、Unicode 文字が使用されます。 このフラグが設定されていない場合、環境ブロックは ANSI 文字を使用します。
-
Create_Default_Error_Mode (67108864)
-
新しく作成されたプロセスには、親プロセスのエラー モードを継承するのではなく、呼び出し元プロセスのシステムの既定のエラー モードが与えられます。 このフラグは、ハード エラーが無効になっている状態で実行されるマルチスレッド シェル アプリケーションに役立ちます。
-
CREATE_BREAKAWAY_FROM_JOB (16777216)
-
ジョブ オブジェクトによって制限されないように、作成されたプロセスに使用されます。
EnvironmentVariables
-
データ型: 文字列 配列
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32Registry|HKEY_CURRENT_USER\\Environment")
コンピューターの構成の設定の一覧。 環境変数は、ファイルの検索パス、一時ファイルのディレクトリ、アプリケーション固有のオプション、およびその他の同様の情報を指定します。 システムは、各ユーザーとコンピューターの 1 つの環境設定ブロックを保持します。 システム環境ブロックは、特定のコンピューターのすべてのユーザーの環境変数を表します。 ユーザーの環境ブロックは、システムが特定のユーザーに対して保持する環境変数を表し、システム環境変数のセットを含みます。 既定では、各プロセスは、親プロセスの環境ブロックのコピーを受け取ります。 通常、これはログオンしているユーザーの環境ブロックです。 プロセスでは、子プロセスに異なる環境ブロックを指定できます。
ErrorMode
-
データ型: uint16
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|エラー関数|SetErrorMode")
一部の x86 以外のプロセッサでは、メモリ参照がずれていると、アラインメント エラーの例外が発生します。 No_Alignment_Fault_Except フラグを使用すると、オペレーティング システムがこのようなアラインメント エラーを自動的に修正するか、アプリケーションに表示するかを制御できます。 1 秒あたり数百万の命令 (MIPS) プラットフォームでは、オペレーティング システムが自動的にアラインメント エラーを修正するには、No_Alignment_Fault_Except フラグを使用して SetErrorMode を明示的に呼び出す必要があります。
オペレーティング システムが複数の種類の重大なエラーを処理する方法。 オペレーティング システムのプロセス エラーを指定することも、アプリケーションでエラーを受信して処理することもできます。
既定の設定は、配置エラーをアプリケーションに表示するためにオペレーティング システム用です。 x86 プラットフォームではアプリケーションに配置エラーが表示されないため、フラグが設定されていない場合でも、 No_Alignment_Fault_Except フラグによってオペレーティング システムでアラインメント エラーが発生することはありません。 SetErrorMode の既定の状態は、すべてのフラグを 0 (ゼロ) に設定することです。
(1)
Default
Fail_Critical_Errors (2)
このフラグが設定されている場合、オペレーティング システムは、このようなエラーが発生したときに重大なエラー ハンドラー メッセージ ボックスを表示しません。 代わりに、オペレーティング システムは呼び出し元プロセスにエラーを送信します。
No_Alignment_Fault_Except (4)
このフラグを設定すると、オペレーティング システムによってメモリアラインメントエラーが自動的に修正され、アプリケーションから見えなくなります。 これは、呼び出し元プロセスと子孫プロセスに対して行います。 このフラグは、減らされた命令セット コンピューティング (RISC) にのみ適用され、x86 プロセッサには影響しません。
No_GP_Fault_Error_Box (8)
このフラグが設定されている場合、オペレーティング システムは GP エラーが発生したときに、一般的な保護 (GP) エラー メッセージ ボックスを表示しません。 このフラグは、GP エラーを処理するアプリケーションをデバッグすることによってのみ設定する必要があります。
No_Open_File_Error_Box (16)
このフラグが設定されている場合、オペレーティング システムは、ファイルを見つけることができない場合、メッセージ ボックスを表示しません。 代わりに、呼び出し元のプロセスにエラーが返されます。 このフラグは現在無視されています。
FillAttribute
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwFillAttribute")
コンソール アプリケーションで新しいコンソール ウィンドウが作成された場合のテキストと背景色。 これらの値は、グラフィカル ユーザー インターフェイス (GUI) アプリケーションでは無視されます。 前景色と背景色の両方を指定するには、値をまとめて追加します。 たとえば、青い背景 (16) に赤の種類 (4) を設定するには、FillAttribute を 20 に設定します。
1
Foreground_Blue
2
Foreground_Green
4
Foreground_Red
8
Foreground_Intensity
16
Background_Blue
32
Background_Green
64
Background_Red
128
Background_Intensity
PriorityClass
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|JOBOBJECT_BASIC_LIMIT_INFORMATION|PriorityClass")
新しいプロセスの優先度クラス。 このプロパティを使用して、プロセス内のスレッドのスケジュールの優先順位を決定します。 プロパティが null のままにした場合、作成プロセスの優先度クラスが Idle または Below_Normalでない限り、優先度クラスの既定値は Normal になります。 このような場合、子プロセスは呼び出し元プロセスの既定の優先度クラスを受け取ります。
標準 (32)
特別なスケジュールを必要としない通常のプロセスを示します。
アイドル ( 64)
システムがアイドル状態で、優先度の高いクラスで実行されているプロセスのスレッドによって優先される場合にのみ実行されるスレッドを含むプロセスを示します。 スクリーン セーバーの例を示します。 アイドル状態の優先度クラスは、子プロセスによって継承されます。
High (128)
正しく実行するために直ちに実行する必要があるタイム クリティカルなタスクを実行するプロセスを示します。 優先度の高いクラス プロセスのスレッドは、通常の優先度またはアイドル優先度のクラス プロセスのスレッドを優先します。 たとえば、Windows タスク リストは、オペレーティング システムの負荷に関係なく、ユーザーが呼び出したときに迅速に応答する必要があります。 優先度の高いクラスの CPU バインド アプリケーションでは、使用可能なすべてのサイクルを使用できるため、優先度の高いクラスを使用する場合は細心の注意を払います。 このレベルに設定されているスレッドは、リアルタイムの優先度のみが優先されます。
リアルタイム (256)
可能な限り高い優先度を持つプロセスを示します。 リアルタイム優先度クラス プロセスのスレッドは、優先度の高いスレッドや重要なタスクを実行するオペレーティング システム プロセスなど、他のすべてのプロセスのスレッドを優先します。 たとえば、非常に短い間隔を超えて実行されるリアルタイム プロセスでは、ディスク キャッシュがフラッシュされなかったり、マウスが応答しなくなる可能性があります。
Below_Normal (16384)
アイドルより優先度が高いが、通常より低いプロセスを示します。
Above_Normal (32768)
優先度が標準より高いが、高より低いプロセスを示します。
Showwindow
-
データ型: uint16
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|wShowWindow")
ユーザーにウィンドウを表示する方法。 ShowWindow 関数の nCmdShow パラメーターで指定できる任意の値を指定できます。
タイトル
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|lpTitle")
新しいコンソール ウィンドウの作成時にタイトル バーに表示されるテキスト。コンソール プロセスに使用されます。 NULL の場合、実行可能ファイルの名前がウィンドウ タイトルとして使用されます。 このプロパティは、新しいコンソール ウィンドウを作成しない GUI またはコンソール プロセスの 場合は NULL である必要があります。
WinstationDesktop
-
データ型: string
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|lpDesktop")
デスクトップの名前、またはプロセスのデスクトップステーションとウィンドウステーションの両方の名前。 文字列の円記号は、文字列にデスクトップステーション名とウィンドウステーション名の両方が含まれていることを示します。 WinstationDesktop が NULL の場合、新しいプロセスは親プロセスのデスクトップステーションとウィンドウステーションを継承します。 WinstationDesktop が空の文字列の場合、プロセスは親プロセスのデスクトップステーションとウィンドウステーションを継承しません。 システムは、新しいデスクトップステーションとウィンドウステーションを作成する必要があるかどうかを決定します。 ウィンドウ ステーションは、クリップボード、グローバルアトムのセット、デスクトップ オブジェクトのグループを含むセキュリティで保護されたオブジェクトです。 対話型ユーザーのログオン セッションに割り当てられた対話型ウィンドウ ステーションには、キーボード、マウス、およびディスプレイ デバイスも含まれています。 デスクトップは、ウィンドウ ステーション内に含まれるセキュリティで保護されたオブジェクトです。 デスクトップには論理表示画面があり、ウィンドウ、メニュー、フックが含まれています。 1 つのウィンドウ ステーションに複数のデスクトップを使用できます。 対話型ウィンドウ ステーションのデスクトップのみが表示され、ユーザー入力を受け取ることができます。
X
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwX")
新しいウィンドウが作成された場合のウィンドウの左上隅の X オフセット (ピクセル単位)。 オフセットは画面の左上隅から取得されます。 GUI プロセスの場合、CreateWindow の X パラメーターがCW_USEDEFAULTされている場合、新しいプロセスが CreateWindow を初めて呼び出して重複するウィンドウを作成する際に、指定した位置が使用されます。
[!注 X]
と Y は個別に指定できません。
XCountChars
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|XCountChars")
文字列の画面バッファーの幅。 このプロパティは、コンソール ウィンドウを作成するプロセスに使用され、GUI プロセスでは無視されます。
注意
XCountChars と YCountChars を 個別に指定することはできません。
XSize
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwXSize")
新しいウィンドウが作成された場合のウィンドウのピクセル幅。 GUI プロセスの場合、これは CreateWindow の nWidth パラメーターがCW_USEDEFAULTされている場合に、新しいプロセスが CreateWindow を初めて呼び出して重複するウィンドウを作成する場合にのみ使用されます。
注意
XSize と YSize を個別に指定することはできません。
Y
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwY")
新しいウィンドウが作成された場合のウィンドウの左上隅のピクセル オフセット。 オフセットは、画面の左上隅から取得されます。 GUI プロセスの場合、CreateWindow の y パラメーターがCW_USEDEFAULTされている場合、新しいプロセスが CreateWindow を初めて呼び出して重複するウィンドウを作成する際に、指定した位置が使用されます。
[!注 X]
と Y は個別に指定できません。
YCountChars
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|YCountChars")
文字行の画面バッファーの高さ。 このプロパティは、コンソール ウィンドウを作成するプロセスでは使用されますが、GUI プロセスでは無視されます。
注意
XCountChars と YCountChars を 個別に指定することはできません。
YSize
-
データ型: uint32
-
アクセスの種類: 読み取り/書き込み
-
修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwYSize")
新しいウィンドウが作成された場合のウィンドウのピクセルの高さ。 GUI プロセスの場合、これは CreateWindow の nWidth パラメーターがCW_USEDEFAULT場合に、新しいプロセスが CreateWindow を初めて呼び出して重複するウィンドウを作成するときにのみ使用されます。
注意
XSize と YSize を個別に指定することはできません。
注釈
このクラスは、 Win32_MethodParameterClassから派生します。
概要
Win32_ProcessCreate メソッドを使用すると、コンピューターで実行されている新しいプロセスのスタートアップ オプションを構成できます。 たとえば、プロセスを "非表示" ウィンドウで開始するように構成できます。これにより、ユーザーに表示されず、中断される可能性があります。 プロセスがコマンド ウィンドウで実行される場合は、ウィンドウのサイズ、タイトル、前景色、背景色を構成できます。
スタートアップ オプションは、 Win32_ProcessStartup クラスを使用して構成されます。 Win32_ProcessStartup はメソッド型クラスです。Method Type クラスは、情報をメソッドに渡すためだけに存在します。 この場合、 Win32_ProcessStartup のインスタンスのすべてのプロパティが Win32_Process のインスタンスに渡されます。
Win32_ProcessStartupの使用
- Win32_ProcessStartupのインスタンスを作成します。
- 新しいインスタンスのプロパティを構成します。
- インスタンスを Win32_Process Create メソッドの一部として含めます。
たとえば、objConfig という名前 のWin32_ProcessStartup インスタンスを作成した場合は、Create メソッドで次のようにオブジェクト名を渡します。
errReturn = objProcess.Create("Database.exe", null, objConfig, intProcessID)
例
Win32_ProcessStartup クラスを使用して、プロセスのさまざまなスタートアップ オプションを構成できます。 これらのオプションには、非表示ウィンドウでのプロセスの作成や優先度の高いプロセスの作成などが含まれますが、これらに限定されません。 次の VBScript は、非表示ウィンドウにプロセスを作成します。
Const HIDDEN_WINDOW = 12
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = HIDDEN_WINDOW
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID)
次の VBScript では、優先順位の高いプロセスが作成されます。
Const ABOVE_NORMAL = 32768
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.PriorityClass = ABOVE_NORMAL
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
objProcess.Create "Database.exe", Null, objConfig, intProcessID
次の VBScript コード例では、ローカル コンピューターにメモ帳プロセスを作成します。 Win32_ProcessStartup は、プロセス設定を構成するために使用されます。
Const SW_NORMAL = 1
strComputer = "."
strCommand = "Notepad.exe"
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
' Configure the Notepad process to show a window
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_NORMAL
' Create Notepad process
Set objProcess = objWMIService.Get("Win32_Process")
intReturn = objProcess.Create _
(strCommand, Null, objConfig, intProcessID)
If intReturn <> 0 Then
Wscript.Echo "Process could not be created." & vbNewLine & _
"Command line: " & strCommand & vbNewLine & _
"Return value: " & intReturn
Else
Wscript.Echo "Process created." & vbNewLine & _
"Command line: " & strCommand & vbNewLine & _
"Process ID: " & intProcessID
End If
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista |
サポートされている最小のサーバー |
Windows Server 2008 |
名前空間 |
Root\CIMV2 |
MOF |
|
[DLL] |
|
こちらもご覧ください