Freigeben über


Win32_ProcessStartup-Klasse

Die Win32_ProcessStartup abstrakte WMI-Klasse stellt die Startkonfiguration eines Windows-basierten Prozesses dar. Die -Klasse ist als Methodentypdefinition definiert, was bedeutet, dass sie nur zum Übergeben von Informationen an die Create-Methode der Win32_Process Klasse verwendet wird.

Die folgende Syntax wird durch MOF-Code (Managed Object Format) vereinfacht und schließt alle geerbten Eigenschaften ein.

Syntax

[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;
};

Member

Die Win32_ProcessStartup-Klasse verfügt über folgende Membertypen:

Eigenschaften

Die Win32_ProcessStartup-Klasse verfügt über diese Eigenschaften.

Createflags

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadfunktionen| CreateProcess|dwCreationFlags")

Zusätzliche Werte, die die Prioritätsklasse und die Erstellung des Prozesses steuern. Die folgenden Erstellungswerte können in beliebiger Kombination angegeben werden, außer wie angegeben.

Debug_Process (1)

Wenn dieses Flag festgelegt ist, wird der aufrufende Prozess als Debugger behandelt, und der neue Prozess wird debuggt. Das System benachrichtigt den Debugger über alle Debugereignisse, die im Debugprozess auftreten.

Debug_Only_This_Process (2)

Wenn dieses Flag nicht festgelegt ist und der aufrufende Prozess debuggt wird, wird der neue Prozess zu einem weiteren Prozess, der gedebuggt wird. Wenn es sich beim aufrufenden Prozess nicht um einen Debugprozess handelt, werden keine debugbezogenen Aktionen ausgeführt.

Create_Suspended (4)

Der primäre Thread des neuen Prozesses wird in einem angehaltenen Zustand erstellt und wird erst ausgeführt, wenn die ResumeThread-Methode aufgerufen wird.

Detached_Process (8)

Bei Konsolenprozessen hat der neue Prozess keinen Zugriff auf die Konsole des übergeordneten Prozesses. Dieses Flag kann nicht verwendet werden, wenn das Create_New_Console-Flag festgelegt ist.

Create_New_Console (16)

Dieser neue Prozess verfügt über eine neue Konsole, anstatt die übergeordnete Konsole zu erben. Dieses Flag kann nicht mit dem flag Detached_Process verwendet werden.

Create_New_Process_Group (512)

Dieser neue Prozess ist der Stammprozess einer neuen Prozessgruppe. Die Prozessgruppe enthält alle Prozesse, die Nachfolger dieses Stammprozesses sind. Der Prozessbezeichner der neuen Prozessgruppe ist identisch mit dem Prozessbezeichner, der in der ProcessID-Eigenschaft der Win32_Process-Klasse zurückgegeben wird. Prozessgruppen werden von der GenerateConsoleCtrlEvent-Methode verwendet, um das Senden eines STRG+C-Signals oder eines STRG+BREAK-Signals an eine Gruppe von Konsolenprozessen zu ermöglichen.

Create_Unicode_Environment (1024)

Die in der EnvironmentVariables-Eigenschaft aufgeführten Umgebungseinstellungen verwenden Unicode-Zeichen. Wenn dieses Flag nicht festgelegt ist, verwendet der Umgebungsblock ANSI-Zeichen.

Create_Default_Error_Mode (67108864)

Neu erstellte Prozesse erhalten den Systemstandardfehlermodus des aufrufenden Prozesses, anstatt den Fehlermodus des übergeordneten Prozesses zu erben. Dieses Flag ist nützlich für Multithread-Shellanwendungen, die mit deaktivierten harten Fehlern ausgeführt werden.

CREATE_BREAKAWAY_FROM_JOB (16777216)

Wird für den erstellten Prozess verwendet, um nicht durch das Auftragsobjekt eingeschränkt zu werden.

EnvironmentVariables

Datentyp: Zeichenfolgenarray

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32Registry|HKEY_CURRENT_USER\\Environment")

Liste der Einstellungen für die Konfiguration eines Computers. Umgebungsvariablen geben Suchpfade für Dateien, Verzeichnisse für temporäre Dateien, anwendungsspezifische Optionen und ähnliche Informationen an. Das System verwaltet einen Block von Umgebungseinstellungen für jeden Benutzer und einen für den Computer. Der Systemumgebungsblock stellt Umgebungsvariablen für alle Benutzer eines bestimmten Computers dar. Der Umgebungsblock eines Benutzers stellt die Umgebungsvariablen dar, die das System für einen bestimmten Benutzer verwaltet, und enthält den Satz von Systemumgebungsvariablen. Standardmäßig empfängt jeder Prozess eine Kopie des Umgebungsblocks für den übergeordneten Prozess. In der Regel ist dies der Umgebungsblock für den angemeldeten Benutzer. Ein Prozess kann verschiedene Umgebungsblöcke für seine untergeordneten Prozesse angeben.

Errormode

Datentyp: uint16

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Fehlerfunktionen| SetErrorMode")

Bei einigen Nicht-x86-Prozessoren verursachen falsch ausgerichtete Speicherverweise eine Ausrichtungsfehlerausnahme. Mit dem No_Alignment_Fault_Except-Flag können Sie steuern, ob ein Betriebssystem solche Ausrichtungsfehler automatisch behebt oder für eine Anwendung sichtbar macht. Auf einer MiPS-Plattform (Millionen von Anweisungen pro Sekunde) muss eine Anwendung SetErrorMode explizit mit dem flag No_Alignment_Fault_Except aufrufen, damit das Betriebssystem Ausrichtungsfehler automatisch beheben kann.

Wie ein Betriebssystem verschiedene Arten von schwerwiegenden Fehlern verarbeitet. Sie können angeben, dass das Betriebssystem Fehler verarbeitet oder eine Anwendung Fehler empfangen und verarbeiten kann.

Die Standardeinstellung ist, dass das Betriebssystem Ausrichtungsfehler für eine Anwendung sichtbar macht. Da die x86-Plattform keine Ausrichtungsfehler für eine Anwendung sichtbar macht, führt das No_Alignment_Fault_Except-Flag nicht dazu, dass das Betriebssystem einen Ausrichtungsfehler auslöst – selbst wenn das Flag nicht festgelegt ist. Der Standardzustand für SetErrorMode besteht darin, alle Flags auf 0 (null) festzulegen.

(1)

Standard

Fail_Critical_Errors (2)

Wenn dieses Flag festgelegt ist, zeigt das Betriebssystem das Meldungsfeld für den kritischen Fehlerhandler nicht an, wenn ein solcher Fehler auftritt. Stattdessen sendet das Betriebssystem den Fehler an den aufrufenden Prozess.

No_Alignment_Fault_Except (4)

Wenn dieses Flag festgelegt ist, behebt das Betriebssystem automatisch Fehler bei der Speicherausrichtung und macht sie für die Anwendung unsichtbar. Dies erfolgt für die aufrufenden und untergeordneten Prozesse. Dieses Flag gilt nur für das Reduzierte Befehlssatzcomputing (Reduced Instruction Set Computing, RISC) und hat keine Auswirkungen auf x86-Prozessoren.

No_GP_Fault_Error_Box (8)

Wenn dieses Flag festgelegt ist, zeigt das Betriebssystem beim Auftreten eines GP-Fehlers nicht das Fehlermeldungsfeld allgemeiner Schutz (GP) an. Dieses Flag sollte nur vom Debuggen von Anwendungen festgelegt werden, die GP-Fehler behandeln.

No_Open_File_Error_Box (16)

Wenn dieses Flag festgelegt ist, zeigt das Betriebssystem kein Meldungsfeld an, wenn eine Datei nicht gefunden werden kann. Stattdessen wird der Fehler an den aufrufenden Prozess zurückgegeben. Dieses Flag wird derzeit ignoriert.

FillAttribute

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|dwFillAttribute")

Die Text- und Hintergrundfarben, wenn ein neues Konsolenfenster in einer Konsolenanwendung erstellt wird. Diese Werte werden in Grafischen Benutzeroberflächenanwendungen (GUI) ignoriert. Fügen Sie die Werte zusammen hinzu, um Vordergrund- und Hintergrundfarben anzugeben. Um beispielsweise den roten Typ (4) auf blauem Hintergrund (16) zu verwenden, legen Sie fillAttribute auf 20 fest.

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

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| JOBOBJECT_BASIC_LIMIT_INFORMATION| PriorityClass")

Prioritätsklasse des neuen Prozesses. Verwenden Sie diese Eigenschaft, um die Zeitplanprioritäten der Threads im Prozess zu bestimmen. Wenn die Eigenschaft null bleibt, wird die Prioritätsklasse standardmäßig auf Normal festgelegt, es sei denn, die Prioritätsklasse des Erstellungsprozesses ist Im Leerlauf oder Below_Normal. In diesen Fällen erhält der untergeordnete Prozess die Standardprioritätsklasse des aufrufenden Prozesses.

Normal (32)

Gibt einen normalen Prozess ohne spezielle Zeitplananforderungen an.

Leerlauf (64)

Gibt einen Prozess mit Threads an, die nur ausgeführt werden, wenn sich das System im Leerlauf befindet und von den Threads eines Prozesses, der in einer Klasse mit höherer Priorität ausgeführt wird, vorzeitig entfernt werden. Ein Beispiel ist ein Bildschirmschoner. Die Leerlaufprioritätsklasse wird von untergeordneten Prozessen geerbt.

Hoch (128)

Gibt einen Prozess an, der zeitkritische Aufgaben ausführt, die sofort ausgeführt werden müssen, um ordnungsgemäß ausgeführt zu werden. Die Threads eines Klassenprozesses mit hoher Priorität verdrängen die Threads von Klassenprozessen mit normaler Priorität oder Leerlaufpriorität. Ein Beispiel ist die Windows-Aufgabenliste, die schnell reagieren muss, wenn sie vom Benutzer aufgerufen wird, unabhängig von der Auslastung des Betriebssystems. Verwenden Sie bei der Verwendung der Klasse mit hoher Priorität äußerste Sorgfalt, da eine CPU-gebundene Anwendung mit hoher Priorität nahezu alle verfügbaren Zyklen nutzen kann. Nur eine Echtzeitpriorität entfernt Threads, die auf diese Ebene festgelegt sind.

Echtzeit (256)

Gibt einen Prozess an, der die höchstmögliche Priorität hat. Die Threads eines Echtzeitprioritätsklassenprozesses ersetzen die Threads aller anderen Prozesse– einschließlich Threads mit hoher Priorität und Betriebssystemprozessen, die wichtige Aufgaben ausführen. Beispielsweise kann ein Echtzeitprozess, der länger als ein sehr kurzes Intervall ausgeführt wird, dazu führen, dass Datenträgercaches nicht geleert werden oder dass eine Maus nicht mehr reagiert.

Below_Normal (16384)

Gibt einen Prozess an, der eine höhere Priorität als Leerlauf hat, aber niedriger als Normal.

Above_Normal (32768)

Gibt einen Prozess an, der eine höhere Priorität als Normal, aber niedriger als Hoch hat.

Showwindow

Datentyp: uint16

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|wShowWindow")

So wird das Fenster für den Benutzer angezeigt. Dies kann jeder der Werte sein, die im nCmdShow-Parameter für die ShowWindow-Funktion angegeben werden können.

Titel

Datentyp: string

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|lpTitle")

Text, der in der Titelleiste angezeigt wird, wenn ein neues Konsolenfenster erstellt wird; wird für Konsolenprozesse verwendet. Bei NULL wird der Name der ausführbaren Datei als Fenstertitel verwendet. Diese Eigenschaft muss null für GUI- oder Konsolenprozesse sein, die kein neues Konsolenfenster erstellen.

WinstationDesktop

Datentyp: string

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|lpDesktop")

Der Name des Desktops oder der Name der Desktop- und Fensterstation für den Prozess. Ein umgekehrter Schrägstrich in der Zeichenfolge gibt an, dass die Zeichenfolge sowohl Desktop- als auch Fensterstationsnamen enthält. Wenn WinstationDesktopNULL ist, erbt der neue Prozess die Desktop- und Fensterstation des übergeordneten Prozesses. Wenn WinstationDesktop eine leere Zeichenfolge ist, erbt der Prozess nicht die Desktop- und Fensterstation des übergeordneten Prozesses. Das System bestimmt, ob eine neue Desktop- und Fensterstation erstellt werden muss. Eine Fensterstation ist ein sicheres Objekt, das eine Zwischenablage, einen Satz globaler Atome und eine Gruppe von Desktopobjekten enthält. Die interaktive Fensterstation, die der Anmeldesitzung des interaktiven Benutzers zugewiesen ist, enthält auch Tastatur, Maus und Anzeigegerät. Ein Desktop ist ein sicheres Objekt, das in einer Fensterstation enthalten ist. Ein Desktop verfügt über eine logische Anzeigeoberfläche und enthält Fenster, Menüs und Hooks. Eine Fensterstation kann über mehrere Desktops verfügen. Nur die Desktops der interaktiven Fensterstation können sichtbar sein und Benutzereingaben empfangen.

X

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|dwX")

Der X-Offset der oberen linken Ecke eines Fensters, wenn ein neues Fenster erstellt wird – in Pixeln. Die Offsets befinden sich in der oberen linken Bildschirmecke. Für GUI-Prozesse wird die angegebene Position verwendet, wenn der neue Prozess CreateWindow zum ersten Mal aufruft, um ein überlappende Fenster zu erstellen, wenn der X-Parameter von CreateWindowCW_USEDEFAULT ist.

[! Hinweis X]
und Y können nicht unabhängig angegeben werden.

 

XCountChars

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO| XCountChars")

Bildschirmpufferbreite in Zeichenspalten. Diese Eigenschaft wird für Prozesse verwendet, die ein Konsolenfenster erstellen, und wird in GUI-Prozessen ignoriert.

Hinweis

XCountChars und YCountChars können nicht unabhängig angegeben werden.

 

XSize

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|dwXSize")

Pixelbreite eines Fensters, wenn ein neues Fenster erstellt wird. Für GUI-Prozesse wird dies nur verwendet, wenn der neue Prozess CreateWindow zum ersten Mal aufruft, um ein überlappende Fenster zu erstellen, wenn der nWidth-Parameter von CreateWindowCW_USEDEFAULT ist.

Hinweis

XSize und YSize können nicht unabhängig angegeben werden.

 

J

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|dwY")

Pixeloffset der oberen linken Ecke eines Fensters, wenn ein neues Fenster erstellt wird. Die Offsets befinden sich in der oberen linken Ecke des Bildschirms. Für GUI-Prozesse wird die angegebene Position verwendet, wenn der neue Prozess CreateWindow zum ersten Mal aufruft, um ein überlappende Fenster zu erstellen, wenn der y-Parameter von CreateWindowCW_USEDEFAULT ist.

[! Hinweis X]
und Y können nicht unabhängig angegeben werden.

 

YCountChars

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO| YCountChars")

Bildschirmpufferhöhe in Zeichenzeilen. Diese Eigenschaft wird für Prozesse verwendet, die ein Konsolenfenster erstellen, aber in GUI-Prozessen ignoriert.

Hinweis

XCountChars und YCountChars können nicht unabhängig angegeben werden.

 

YSize

Datentyp: uint32

Zugriffstyp: Lese-/Schreibzugriff

Qualifizierer: MappingStrings ("Win32API| Prozess- und Threadstrukturen| STARTUPINFO|dwYSize")

Pixelhöhe eines Fensters, wenn ein neues Fenster erstellt wird. Für GUI-Prozesse wird dies nur verwendet, wenn der neue Prozess CreateWindow zum ersten Mal aufruft, um ein überlappende Fenster zu erstellen, wenn der nWidth-Parameter von CreateWindowCW_USEDEFAULT ist.

Hinweis

XSize und YSize können nicht unabhängig angegeben werden.

 

Bemerkungen

Diese Klasse wird von Win32_MethodParameterClass abgeleitet.

Übersicht

Mit der Win32_ProcessCreate-Methode können Sie Startoptionen für jeden neuen Prozess konfigurieren, der auf einem Computer ausgeführt wird. Beispielsweise können Sie einen Prozess so konfigurieren, dass er in einem "ausgeblendeten" Fenster gestartet wird, wodurch verhindert wird, dass ein Benutzer ihn sieht und möglicherweise unterbricht. Wenn der Prozess in einem Befehlsfenster ausgeführt wird, können Sie die Größe, den Titel sowie die Vordergrund- und Hintergrundfarben des Fensters konfigurieren.

Startoptionen werden mithilfe der Win32_ProcessStartup-Klasse konfiguriert. Win32_ProcessStartup ist eine Method Type-Klasse. Die Method Type-Klasse ist nur vorhanden, um Informationen an eine Methode zu übergeben. In diesem Fall werden alle Eigenschaften eines instance von Win32_ProcessStartup an eine instance von Win32_Process übergeben.

Verwenden von Win32_ProcessStartup

  1. Erstellen Sie eine instance von Win32_ProcessStartup.
  2. Konfigurieren Sie die Eigenschaften des neuen instance.
  3. Schließen Sie die instance als Teil der Win32_Process Create-Methode ein.

Wenn Sie beispielsweise eine Win32_ProcessStartup instance mit dem Namen objConfig erstellt haben, übergeben Sie den Objektnamen in der Create-Methode wie folgt:

errReturn = objProcess.Create("Database.exe", null, objConfig, intProcessID)

Beispiele

Sie können die Win32_ProcessStartup-Klasse verwenden, um verschiedene Startoptionen für einen Prozess zu konfigurieren. Zu diesen Optionen gehören unter anderem das Erstellen eines Prozesses in einem ausgeblendeten Fenster und das Erstellen eines Prozesses mit höherer Priorität. Mit dem folgenden VBScript wird ein Prozess in einem ausgeblendeten Fenster erstellt.

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)

Mit dem folgenden VBScript wird ein Prozess mit höherer Priorität erstellt.

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

Im folgenden VBScript-Codebeispiel wird ein Editor-Prozess auf dem lokalen Computer erstellt. Win32_ProcessStartup wird verwendet, um die Prozesseinstellungen zu konfigurieren.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista
Unterstützte Mindestversion (Server)
WindowsServer 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Siehe auch

Win32_MethodParameterClass

Betriebssystemklassen

Win32_Process

__ProviderHostQuotaConfiguration

WMI-Aufgaben: Prozesse