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")

新しいプロセスの Priority クラス。 このプロパティを使用して、プロセス内のスレッドのスケジュールの優先順位を決定します。 プロパティが null のままにされている場合、作成プロセスの優先度クラスがアイドルまたはBelow_Normalでない限り、優先度クラスの既定値は Normal になります。 このような場合、子プロセスは呼び出し元プロセスの既定の優先度クラスを受け取ります。

標準 (32)

特別なスケジュールを必要としない通常のプロセスを示します。

アイドル ( 64)

システムがアイドル状態で、優先度の高いクラスで実行されているプロセスのスレッドによって割り込まれた場合にのみ実行されるスレッドを含むプロセスを示します。 たとえば、スクリーン セーバーです。 アイドル状態の優先度クラスは、子プロセスによって継承されます。

高 ( 128)

正しく実行するために直ちに実行する必要がある、タイム クリティカルなタスクを実行するプロセスを示します。 優先度の高いクラス プロセスのスレッドは、通常の優先順位またはアイドル優先度のクラス プロセスのスレッドよりも優先されます。 たとえば、Windowsタスク リストは、オペレーティング システムの負荷に関係なく、ユーザーが呼び出したときに迅速に応答する必要があります。 優先順位の高いクラスの CPU バインド アプリケーションでは、使用可能なすべてのサイクルを使用できるため、優先度の高いクラスを使用する場合は細心の注意を払います。 このレベルに設定されているスレッドは、リアルタイムの優先度のみが優先されます。

リアルタイム (256)

可能な限り高い優先順位を持つプロセスを示します。 リアルタイム優先度クラス プロセスのスレッドは、優先度の高いスレッドや重要なタスクを実行するオペレーティング システム プロセスなど、他のすべてのプロセスのスレッドを優先します。 たとえば、非常に短い間隔を超えて実行されるリアルタイム プロセスでは、ディスク キャッシュがフラッシュされない、またはマウスが応答しなくなる可能性があります。

Below_Normal (16384)

優先順位がアイドルより高いが、通常より低いプロセスを示します。

Above_Normal (32768)

優先度が標準より高いが、高値より低いプロセスを示します。

ShowWindow

データ型: uint16

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|wShowWindow")

ユーザーにウィンドウを表示する方法。 ShowWindow 関数の nCmdShow パラメーターで指定できる任意の値を指定できます。

タイトル

データ型: 文字列

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|lpTitle")

新しいコンソール ウィンドウの作成時にタイトル バーに表示されるテキスト。コンソール プロセスに使用されます。 NULL の場合、実行可能ファイルの名前がウィンドウ タイトルとして使用されます。 新しいコンソール ウィンドウを作成しない GUI またはコンソール プロセスの場合、このプロパティは NULL である必要があります。

WinstationDesktop

データ型: 文字列

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|lpDesktop")

デスクトップの名前、またはプロセスのデスクトップステーションとウィンドウステーションの両方の名前。 文字列の円記号は、文字列にデスクトップステーション名とウィンドウステーション名の両方が含まれることを示します。 WinstationDesktopNULL の場合、新しいプロセスは親プロセスのデスクトップステーションとウィンドウステーションを継承します。 WinstationDesktop が空の文字列の場合、プロセスは親プロセスのデスクトップステーションとウィンドウステーションを継承しません。 システムは、新しいデスクトップステーションとウィンドウステーションを作成する必要があるかどうかを判断します。 ウィンドウ ステーションは、クリップボード、グローバルアトムのセット、デスクトップ オブジェクトのグループを含むセキュリティで保護されたオブジェクトです。 対話型ユーザーのログオン セッションに割り当てられている対話型ウィンドウ ステーションには、キーボード、マウス、およびディスプレイ デバイスも含まれています。 デスクトップは、ウィンドウ ステーション内に含まれるセキュリティで保護されたオブジェクトです。 デスクトップには論理表示画面があり、ウィンドウ、メニュー、フックが含まれています。 1 つのウィンドウ ステーションに複数のデスクトップを使用できます。 対話型ウィンドウ ステーションのデスクトップのみが表示され、ユーザー入力を受け取ることができます。

X

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwX")

新しいウィンドウが作成された場合のウィンドウの左上隅の X オフセット (ピクセル単位)。 オフセットは画面の左上隅から取得されます。 GUI プロセスの場合、CreateWindowX パラメーターがCW_USEDEFAULT場合、新しいプロセスが初めて CreateWindow を呼び出して重複ウィンドウを作成する際に、指定した位置が使用されます

[!注 X]
Y を個別に指定することはできません。

 

XCountChars

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|XCountChars")

文字列の画面バッファーの幅。 このプロパティは、コンソール ウィンドウを作成するプロセスに使用され、GUI プロセスでは無視されます。

注意

XCountCharsYCountChars を 個別に指定することはできません。

 

XSize

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwXSize")

新しいウィンドウが作成された場合のウィンドウのピクセル幅。 GUI プロセスの場合、これは、 CreateWindow の nWidth パラメーターがCW_USEDEFAULTされている場合に、新しいプロセスが CreateWindow を初めて呼び出して重複するウィンドウを作成する場合にのみ使用 されます

注意

XSizeYSize を個別に指定することはできません。

 

Y

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwY")

新しいウィンドウが作成された場合のウィンドウの左上隅のピクセル オフセット。 オフセットは画面の左上隅から取得されます。 GUI プロセスの場合、CreateWindowy パラメーターがCW_USEDEFAULTされている場合、新しいプロセスが初めて CreateWindow を呼び出して重複するウィンドウを作成する際に、指定した位置が使用されます。

[!注 X]
Y を個別に指定することはできません。

 

YCountChars

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|YCountChars")

文字行の画面バッファーの高さ。 このプロパティは、コンソール ウィンドウを作成するプロセスに使用されますが、GUI プロセスでは無視されます。

注意

XCountCharsYCountChars を 個別に指定することはできません。

 

YSize

データ型: uint32

アクセスの種類: 読み取り/書き込み

修飾子: MappingStrings ("Win32API|プロセスとスレッドの構造|STARTUPINFO|dwYSize")

新しいウィンドウが作成された場合のウィンドウのピクセル高さ。 GUI プロセスの場合、これは、 CreateWindownWidth パラメーターがCW_USEDEFAULT場合に、新しいプロセスが CreateWindow を呼び出して重複するウィンドウを作成する場合にのみ使用 されます

注意

XSizeYSize を個別に指定することはできません。

 

解説

このクラスは、 Win32_MethodParameterClassから派生します。

概要

Win32_ProcessCreate メソッドを使用すると、コンピューターで実行されている新しいプロセスのスタートアップ オプションを構成できます。 たとえば、プロセスが "非表示" ウィンドウで開始されるように構成できます。これにより、ユーザーがプロセスを表示できなくなり、中断する可能性があります。 プロセスがコマンド ウィンドウで実行される場合は、ウィンドウのサイズ、タイトル、および前景色と背景色を構成できます。

スタートアップ オプションは、 Win32_ProcessStartup クラスを使用して構成されます。 Win32_ProcessStartup はメソッド型クラスです。メソッド型クラスは、メソッドに情報を渡すためだけに存在します。 この場合、 Win32_ProcessStartup のインスタンスのすべてのプロパティが Win32_Processのインスタンスに渡されます。

Win32_ProcessStartupの使用

  1. Win32_ProcessStartupのインスタンスを作成します。
  2. 新しいインスタンスのプロパティを構成します。
  3. 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
CIMWin32.mof
[DLL]
CIMWin32.dll

関連項目

Win32_MethodParameterClass

オペレーティング システム クラス

Win32_Process

__ProviderHostQuotaConfiguration

WMI タスク: プロセス