Win32_ProcessStartup Klasse

Die Win32_ProcessStartup abstrakte WMI-Klasse stellt die Startkonfiguration eines Windows-basierten Prozesses dar. Die Klasse wird als Methodentypdefinition definiert, was bedeutet, dass es 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 diese Arten von Mitgliedern:

Eigenschaften

Die Win32_ProcessStartup Klasse weist diese Eigenschaften auf.

Createflags

Datentyp: uint32

Access-Typ: 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 einer beliebigen Kombination angegeben werden, außer wie erwähnt.

Debug_Process (1)

Wenn dieses Flag festgelegt ist, wird der Aufrufvorgang als Debugger behandelt, und der neue Prozess wird debuggiert. Das System benachrichtigt den Debugger aller Debugereignisse, die beim Debuggen auftreten.

Debug_Only_This_Process (2)

Wenn dieses Flag nicht festgelegt ist und der Aufrufprozess debuggiert wird, wird der neue Prozess zu einem anderen Prozess, der debuggiert wird. Wenn der Aufrufvorgang kein Prozess des Debuggens ist, treten keine Debugaktionen auf.

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)

Für Konsolenprozesse 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 Detached_Process-Flag verwendet werden.

Create_New_Process_Group (512)

Dieser neue Prozess ist der Stammprozess einer neuen Prozessgruppe. Die Prozessgruppe enthält alle Prozesse, die von diesem Stammprozess stammen. Der Prozessbezeichner der neuen Prozessgruppe entspricht 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 Aufrufvorgangs statt den Fehlermodus des übergeordneten Prozesses zu erben. Dieses Flag ist nützlich für Multithread-Shell-Anwendungen, die mit harten Fehlern ausgeführt werden.

CREATE_BREAKAWAY_FROM_JOB (16777216)

Wird für den erstellten Prozess verwendet, der nicht durch das Auftragsobjekt beschränkt werden soll.

EnvironmentVariables

Datentyp: Zeichenfolgenarray

Access-Typ: 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 andere ä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 umfasst die Gruppe von Systemumgebungsvariablen. Standardmäßig erhält jeder Prozess eine Kopie des Umgebungsblocks für seinen übergeordneten Prozess. In der Regel ist dies der Umgebungsblock für den Benutzer, der angemeldet ist. Ein Prozess kann verschiedene Umgebungsblöcke für seine untergeordneten Prozesse angeben.

Errormode

Datentyp: uint16

Access-Typ: Lese-/Schreibzugriff

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

Bei einigen nicht x86-Prozessoren verursachen falsch ausgerichtete Speicherbezüge eine Ausrichtungsfehlerausnahme. Mit dem No_Alignment_Fault_Except-Flag können Sie steuern, ob ein Betriebssystem diese Ausrichtungsfehler automatisch korrigiert oder sie für eine Anwendung sichtbar macht. Auf einer Millionen von Anweisungen pro Sekunde (MIPS) muss eine Anwendung SetErrorMode explizit mit dem No_Alignment_Fault_Except Flag aufrufen, um die Ausrichtungsfehler automatisch zu beheben.

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

Die Standardeinstellung ist für das Betriebssystem, um Ausrichtungsfehler für eine Anwendung sichtbar zu machen. Da die x86-Plattform keine Ausrichtungsfehler für eine Anwendung sichtbar macht, macht das No_Alignment_Fault_Except-Flag keinen Ausrichtungsfehler ausgelöst – auch 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 des kritischen Fehlerhandlers nicht an, wenn ein solcher Fehler auftritt. Stattdessen sendet das Betriebssystem den Fehler an den Aufrufvorgang.

No_Alignment_Fault_Except (4)

Wenn dieses Flag festgelegt ist, korrigiert das Betriebssystem automatisch Speicherausrichtungsfehler und macht sie für die Anwendung unsichtbar. Dies erfolgt für die Aufruf- und Absteigenden Prozesse. Diese Kennzeichnung gilt nur für reduzierten Befehlssatz-Computing (RISC) und hat keine Auswirkungen auf x86-Prozessoren.

No_GP_Fault_Error_Box (8)

Wenn dieses Flag festgelegt ist, wird das Betriebssystem beim Auftreten eines GP-Fehlers nicht das Fehlermeldungsfeld "General Protection" (GP) angezeigt. Dieses Flag sollte nur durch 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 wird. Stattdessen wird der Fehler an den Aufrufvorgang zurückgegeben. Dieses Flag wird derzeit ignoriert.

FillAttribute

Datentyp: uint32

Access-Typ: 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)-Anwendungen ignoriert. Um sowohl Vordergrund- als auch Hintergrundfarben anzugeben, fügen Sie die Werte zusammen. Legen Sie beispielsweise den roten Typ (4) auf einem blauen Hintergrund (16) fest, legen Sie das 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 Idle oder Below_Normal. In diesen Fällen empfängt der untergeordnete Prozess die Standardprioritätsklasse des Aufrufvorgangs.

Normal (32)

Gibt einen normalen Prozess ohne spezielle Zeitplananforderungen an.

Leerlauf (64)

Gibt einen Prozess mit Threads an, die nur ausgeführt werden, wenn das System leer ist und von den Threads eines beliebigen Prozesses, der in einer höheren Prioritätsklasse ausgeführt wird, vorgebezahlt 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äß auszuführen. Die Threads eines Hochprioritätsklassenprozesses sollten die Threads normaler Prioritäts- oder Leerprioritätsklassenprozesse vorziehen. Ein Beispiel ist Windows Aufgabenliste, die schnell reagieren muss, wenn der Benutzer aufgerufen wird, unabhängig vom Laden des Betriebssystems. Verwenden Sie extreme Sorgfalt bei der Verwendung der High-Priority-Klasse, da eine CPU-gebundene Anwendung mit hoher Priorität nahezu alle verfügbaren Zyklen verwenden kann. Nur eine Echtzeitpriorität setzt Threads auf diese Ebene fest.

Echtzeit (256)

Gibt einen Prozess an, der die höchste Priorität hat. Die Threads eines Echtzeitprioritätsklassenprozesses heben die Threads aller anderen Prozesse vor – einschließlich Hauptprioritätsthreads und Betriebssystemprozesse, die wichtige Aufgaben ausführen. Beispielsweise kann ein Echtzeitprozess, der für mehr als ein sehr kurzes Intervall ausgeführt wird, dazu führen, dass Datenträgercaches nicht gelebt werden, oder eine Maus nicht reagiert.

Below_Normal (16384)

Gibt einen Prozess an, der höher als "Leerlauf" ist, aber niedriger als "Normal".

Above_Normal (32768)

Gibt einen Prozess an, der höher als "Normal" ist, aber niedriger als "Hoch".

ShowWindow

Datentyp: uint16

Zugriffstyp: Lese-/Schreibzugriff

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

Anzeige des Fensters für den Benutzer. Es kann sich um eine der Werte handeln, die im nCmdShow-Parameter für die ShowWindow-Funktion angegeben werden können.

Titel

Datentyp: Zeichenfolge

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. Wenn 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: Zeichenfolge

Zugriffstyp: Lese-/Schreibzugriff

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

Der Name des Desktops oder des Namens sowohl der Desktop- als auch der 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 die 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 mehrere Desktops haben. 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 stammen aus der oberen linken Ecke des Bildschirms. Bei GUI-Prozessen wird die angegebene Position zum ersten Mal verwendet, wenn der neue Prozess CreateWindow aufruft, um ein überlappenes Fenster zu erstellen, wenn der X-Parameter von CreateWindowCW_USEDEFAULT ist.

[! Hinweis X]
und Y kann 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 in GUI-Prozessen ignoriert werden.

Hinweis

XCountChars und YCountChars können nicht unabhängig voneinander 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. Bei GUI-Prozessen wird dies nur verwendet, wenn der neue Prozess CreateWindow zum ersten Mal aufruft, um ein überlappenes 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")

Pixelversatz der oberen linken Ecke eines Fensters, wenn ein neues Fenster erstellt wird. Die Offsets stammen aus der oberen linken Ecke des Bildschirms. Bei GUI-Prozessen wird die angegebene Position zum ersten Mal verwendet, wenn der neue Prozess CreateWindow aufruft, um ein überlappenes Fenster zu erstellen, wenn der y-Parameter von CreateWindowCW_USEDEFAULT ist.

[! Hinweis X]
und Y kann 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 werden.

Hinweis

XCountChars und YCountChars können nicht unabhängig voneinander 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. Bei GUI-Prozessen wird dies nur zum ersten Mal verwendet, wenn der neue Prozess CreateWindow aufruft, um ein überlappenes 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. Sie können z. B. einen Prozess so konfigurieren, dass er in einem "ausgeblendeten" Fenster gestartet wird, wodurch verhindert wird, dass ein Benutzer es anzeigt und möglicherweise unterbrochen wird. Wenn der Prozess in einem Befehlsfenster ausgeführt wird, können Sie die Größe, den Titel und die Hintergrundfarben des Fensters konfigurieren.

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

Verwenden von Win32_ProcessStartup

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

Wenn Sie beispielsweise eine Win32_ProcessStartup Instanz namens 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, aber nicht beschränkt, z. B. das Erstellen eines Prozesses in einem ausgeblendeten Fenster und das Erstellen eines Prozesses mit höherer Priorität. Im 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)

Im 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

Requirements (Anforderungen)

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

Weitere Informationen

Win32_MethodParameterClass

Betriebssystemklassen

Win32_Process

__ProviderHostQuotaConfiguration

WMI-Aufgaben: Prozesse