classe Win32_ProcessStartup

La classe WMIastratta Win32_ProcessStartup rappresenta la configurazione di avvio di un processo basato su Windows. La classe è definita come definizione del tipo di metodo, che significa che viene usata solo per passare informazioni al metodo Create della classe Win32_Process .

La sintassi seguente è semplificata dal codice MOF (Managed Object Format) e include tutte le proprietà ereditate.

Sintassi

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

Members

La classe Win32_ProcessStartup include questi tipi di membri:

Proprietà

La classe Win32_ProcessStartup dispone di queste proprietà.

CreateFlags

Tipo di dati: uint32

Tipo di accesso: Lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Funzioni di elaborazione e thread| CreateProcess|dwCreationFlags")

Valori aggiuntivi che controllano la classe di priorità e la creazione del processo. I valori di creazione seguenti possono essere specificati in qualsiasi combinazione, ad eccezione di quanto indicato.

Debug_Process (1)

Se questo flag è impostato, il processo chiamante viene considerato come debugger e il nuovo processo viene eseguito il debug. Il sistema invia una notifica al debugger di tutti gli eventi di debug che si verificano nel processo di debug.

Debug_Only_This_Process (2)

Se questo flag non è impostato e il processo di chiamata viene eseguito il debug, il nuovo processo diventa un altro processo sottoposto a debug. Se il processo di chiamata non è un processo di debug, non si verificano azioni correlate al debug.

Create_Suspended (4)

Il thread primario del nuovo processo viene creato in uno stato sospeso e non viene eseguito finché non viene chiamato il metodo ResumeThread .

Detached_Process (8)

Per i processi della console, il nuovo processo non ha accesso alla console del processo padre. Questo flag non può essere usato se il flag di Create_New_Console è impostato.

Create_New_Console (16)

Questo nuovo processo include una nuova console, anziché ereditare la console padre. Questo flag non può essere usato con il flag di Detached_Process .

Create_New_Process_Group (512)

Questo nuovo processo è il processo radice di un nuovo gruppo di processi. Il gruppo di processi include tutti i processi discendenti di questo processo radice. L'identificatore del processo del nuovo gruppo di processi è lo stesso dell'identificatore di processo restituito nella proprietà ProcessID della classe Win32_Process . I gruppi di processi vengono usati dal metodo GenerateConsoleCtrlEvent per abilitare l'invio di un segnale CTRL+C o un segnale CTRL+BREAK a un gruppo di processi della console.

Create_Unicode_Environment (1024)

Le impostazioni di ambiente elencate nella proprietà EnvironmentVariables usano caratteri Unicode. Se questo flag non è impostato, il blocco di ambiente usa caratteri ANSI.

Create_Default_Error_Mode (67108864 )

I processi appena creati vengono assegnati alla modalità di errore predefinita del sistema del processo di chiamata anziché ereditare la modalità di errore del processo padre. Questo flag è utile per le applicazioni shell multithreading eseguite con errori rigidi disabilitati.

CREATE_BREAKAWAY_FROM_JOB (16777216 )

Utilizzato per il processo creato non deve essere limitato dall'oggetto processo.

EnvironmentVariables

Tipo di dati: matrice di stringhe

Tipo di accesso: Lettura/scrittura

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

Elenco delle impostazioni per la configurazione di un computer. Le variabili di ambiente specificano percorsi di ricerca per file, directory per file temporanei, opzioni specifiche dell'applicazione e altre informazioni simili. Il sistema gestisce un blocco di impostazioni di ambiente per ogni utente e uno per il computer. Il blocco di ambiente di sistema rappresenta le variabili di ambiente per tutti gli utenti di un computer specifico. Il blocco di ambiente di un utente rappresenta le variabili di ambiente gestite dal sistema per un utente specifico e include il set di variabili di ambiente di sistema. Per impostazione predefinita, ogni processo riceve una copia del blocco di ambiente per il processo padre. In genere, questo è il blocco di ambiente per l'utente che è connesso. Un processo può specificare blocchi di ambiente diversi per i processi figlio.

Errormode

Tipo di dati: uint16

Tipo di accesso: Lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Funzioni di errore | SetErrorMode")

In alcuni processori non x86, i riferimenti alla memoria non allineati causano un'eccezione di errore di allineamento. Il flag No_Alignment_Fault_Except consente di controllare se un sistema operativo corregge automaticamente tali errori di allineamento o li rende visibili a un'applicazione. In una piattaforma MIPS (MIPS) per milioni di istruzioni, un'applicazione deve chiamare in modo esplicito SetErrorMode con il flag No_Alignment_Fault_Except per avere il sistema operativo correggere automaticamente gli errori di allineamento.

Come un sistema operativo elabora diversi tipi di errori gravi. È possibile specificare che il sistema operativo elabora gli errori o un'applicazione può ricevere e elaborare errori.

L'impostazione predefinita è per il sistema operativo per rendere visibili gli errori di allineamento a un'applicazione. Poiché la piattaforma x86 non rende visibili gli errori di allineamento a un'applicazione, il flag No_Alignment_Fault_Except non genera un errore di errore di allineamento, anche se il flag non è impostato. Lo stato predefinito per SetErrorMode consiste nell'impostare tutti i flag su 0 (zero).

(1)

Predefinito

Fail_Critical_Errors (2)

Se questo flag è impostato, il sistema operativo non visualizza la casella di messaggio del gestore degli errori critici quando si verifica un errore di questo tipo. Il sistema operativo invia invece l'errore al processo di chiamata.

No_Alignment_Fault_Except (4)

Se questo flag è impostato, il sistema operativo corregge automaticamente gli errori di allineamento della memoria e li rende invisibili all'applicazione. Lo fa per i processi chiamanti e discendenti. Questo flag si applica solo al set di istruzioni ridotto (RISC) e non ha effetto sui processori x86.

No_GP_Fault_Error_Box (8)

Se questo flag è impostato, il sistema operativo non visualizza la finestra di messaggio di errore protezione generale (GP) quando si verifica un errore Criteri di gruppo. Questo flag deve essere impostato solo eseguendo il debug delle applicazioni che gestiscono gli errori criteri di gruppo.

No_Open_File_Error_Box (16)

Se questo flag è impostato, il sistema operativo non visualizza una finestra di messaggio quando non riesce a trovare un file. Viene invece restituito l'errore al processo di chiamata. Questo flag è attualmente ignorato.

FillAttribute

Tipo di dati: uint32

Tipo di accesso: Lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di elaborazione e thread| STARTUPINFO|dwFillAttribute")

I colori di testo e sfondo se viene creata una nuova finestra della console in un'applicazione console. Questi valori vengono ignorati nelle applicazioni dell'interfaccia utente grafica (GUI). Per specificare sia i colori di primo piano che di sfondo, aggiungere i valori insieme. Ad esempio, per avere il tipo rosso (4) su uno sfondo blu (16), impostare FillAttribute su 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

Tipo di dati: uint32

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | JOBOBJECT_BASIC_LIMIT_INFORMATION| PriorityClass")

Classe Priority del nuovo processo. Utilizzare questa proprietà per determinare le priorità di pianificazione dei thread nel processo. Se la proprietà viene lasciata null, per impostazione predefinita la classe priority è Normal, a meno che la classe di priorità del processo di creazione non sia Inattiva o Below_Normal. In questi casi, il processo figlio riceve la classe di priorità predefinita del processo chiamante.

Normale (32)

Indica un processo normale senza esigenze di pianificazione speciali.

Inattività (64)

Indica un processo con thread eseguiti solo quando il sistema è inattiva e viene preceduto dai thread di qualsiasi processo in esecuzione in una classe con priorità più alta. Un esempio è uno screen saver. La classe di priorità inattiva viene ereditata dai processi figlio.

Alta (128)

Indica un processo che esegue attività critiche che devono essere eseguite immediatamente per l'esecuzione corretta. I thread di un processo di classe ad alta priorità annullano i thread dei processi di classe con priorità normale o con priorità inattiva. Un esempio è Elenco attività di Windows, che deve rispondere rapidamente quando viene chiamato dall'utente, indipendentemente dal carico sul sistema operativo. Usare l'estrema attenzione quando si usa la classe ad alta priorità, perché un'applicazione con associazione a CPU a priorità elevata può usare quasi tutti i cicli disponibili. Solo una priorità in tempo reale annulla i thread impostati su questo livello.

Tempo reale (256)

Indica un processo con la priorità più alta possibile. I thread di un processo di classe di priorità in tempo reale annullano i thread di tutti gli altri processi, inclusi i thread ad alta priorità e i processi del sistema operativo che eseguono attività importanti. Ad esempio, un processo in tempo reale che viene eseguito per più di un intervallo molto breve può causare la mancata scaricamento delle cache del disco o la mancata risposta di un mouse.

Below_Normal (16384)

Indica un processo con priorità superiore a Inattiva ma inferiore a Normale.

Above_Normal (32768)

Indica un processo con priorità superiore a Normale ma inferiore a Alto.

Showwindow

Tipo di dati: uint16

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|wShowWindow")

Modalità di visualizzazione della finestra all'utente. Può essere uno qualsiasi dei valori che è possibile specificare nel parametro nCmdShow per la funzione ShowWindow .

Titolo

Tipo di dati: string

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|lpTitle")

Testo visualizzato nella barra del titolo quando viene creata una nuova finestra della console; usato per i processi della console. Se NULL, il nome del file eseguibile viene usato come titolo della finestra. Questa proprietà deve essere NULL per i processi gui o console che non creano una nuova finestra della console.

WinstationDesktop

Tipo di dati: string

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|lpDesktop")

Nome del desktop o del nome sia della stazione desktop che della finestra per il processo. Una barra rovesciata nella stringa indica che la stringa include sia i nomi delle stazioni desktop che delle finestre. Se WinstationDesktop è NULL, il nuovo processo eredita la stazione desktop e finestra del processo padre. Se WinstationDesktop è una stringa vuota, il processo non eredita la stazione desktop e finestra del processo padre. Il sistema determina se è necessario creare una nuova stazione desktop e finestra. Una stazione finestra è un oggetto sicuro che contiene gli Appunti, un set di atomi globali e un gruppo di oggetti desktop. La stazione interattiva della finestra assegnata alla sessione di accesso dell'utente interattivo contiene anche la tastiera, il mouse e il dispositivo di visualizzazione. Un desktop è un oggetto sicuro contenuto in una stazione finestra. Un desktop ha una superficie di visualizzazione logica e contiene finestre, menu e hook. Una stazione finestra può avere più desktop. Solo i desktop della stazione finestra interattiva possono essere visibili e ricevere l'input dell'utente.

X

Tipo di dati: uint32

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|dwX")

Offset X dell'angolo superiore sinistro di una finestra se viene creata una nuova finestra, in pixel. Gli offset provengono dall'angolo superiore sinistro dello schermo. Per i processi GUI, la posizione specificata viene usata la prima volta che il nuovo processo chiama CreateWindow per creare una finestra sovrapposta se il parametro X di CreateWindow è CW_USEDEFAULT.

[! Nota X]
e Y non possono essere specificati in modo indipendente.

 

XCountChars

Tipo di dati: uint32

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO| XCountChars")

Larghezza del buffer dello schermo nelle colonne di caratteri. Questa proprietà viene usata per i processi che creano una finestra della console e vengono ignorati nei processi GUI.

Nota

Non è possibile specificare XCountChars e YCountChars in modo indipendente.

 

XSize

Tipo di dati: uint32

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|dwXSize")

Larghezza in pixel di una finestra se viene creata una nuova finestra. Per i processi GUI, questa operazione viene usata solo la prima volta che il nuovo processo chiama CreateWindow per creare una finestra sovrapposta se il parametro nWidth di CreateWindow è CW_USEDEFAULT.

Nota

Non è possibile specificare XSize e YSize in modo indipendente.

 

S

Tipo di dati: uint32

Tipo di accesso: lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di processi e thread | STARTUPINFO|dwY")

Offset in pixel dell'angolo superiore sinistro di una finestra se viene creata una nuova finestra. Gli offset provengono dall'angolo superiore sinistro dello schermo. Per i processi GUI, la posizione specificata viene usata la prima volta che il nuovo processo chiama CreateWindow per creare una finestra sovrapposta se il parametro y di CreateWindow è CW_USEDEFAULT.

[! Nota X]
e Y non possono essere specificati in modo indipendente.

 

YCountChars

Tipo di dati: uint32

Tipo di accesso: Lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di elaborazione e thread| STARTUPINFO| YCountChars")

Altezza del buffer dello schermo nelle righe di caratteri. Questa proprietà viene usata per i processi che creano una finestra della console, ma vengono ignorati nei processi GUI.

Nota

Non è possibile specificare XCountChars e YCountChars in modo indipendente.

 

YSize

Tipo di dati: uint32

Tipo di accesso: Lettura/scrittura

Qualificatori: MappingStrings ("Win32API| Strutture di elaborazione e thread| STARTUPINFO|dwYSize")

Altezza pixel di una finestra se viene creata una nuova finestra. Per i processi GUI, viene usato solo la prima volta che il nuovo processo chiama CreateWindow per creare una finestra sovrapposta se il parametro nWidth di CreateWindow è CW_USEDEFAULT.

Nota

Non è possibile specificare XSize e YSize in modo indipendente.

 

Commenti

Questa classe è derivata da Win32_MethodParameterClass.

Panoramica

Il metodo Win32_ProcessCreate consente di configurare le opzioni di avvio per qualsiasi nuovo processo in esecuzione in un computer. Ad esempio, è possibile configurare un processo in modo che venga avviato in una finestra "nascosta", che impedisce a un utente di visualizzare e eventualmente interrompere il processo. Se il processo viene eseguito in una finestra dei comandi, è possibile configurare le dimensioni, il titolo e i colori di sfondo della finestra.

Le opzioni di avvio vengono configurate usando la classe Win32_ProcessStartup . Win32_ProcessStartup è una classe Type metodo; la classe Type metodo esiste solo per passare informazioni a un metodo. In questo caso, tutte le proprietà di un'istanza di Win32_ProcessStartup vengono passate a un'istanza di Win32_Process.

Uso di Win32_ProcessStartup

  1. Creare un'istanza di Win32_ProcessStartup.
  2. Configurare le proprietà della nuova istanza.
  3. Includere l'istanza come parte del metodo Create Win32_Process .

Ad esempio, se è stata creata un'istanza di Win32_ProcessStartup denominata objConfig, si passerà il nome dell'oggetto nel metodo Create come indicato di seguito:

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

Esempio

È possibile usare la classe Win32_ProcessStartup per configurare varie opzioni di avvio per un processo. Queste opzioni includono, ma non sono limitate a, ad esempio la creazione di un processo in una finestra nascosta e la creazione di un processo con priorità superiore. Il codice VBScript seguente crea un processo in una finestra nascosta.

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)

Il codice VBScript seguente crea un processo con priorità superiore.

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

Nell'esempio di codice VBScript seguente viene creato un processo blocco note nel computer locale. Win32_ProcessStartup viene usato per configurare le impostazioni del processo.

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

Requisiti

Requisito Valore
Client minimo supportato
Windows Vista
Server minimo supportato
Windows Server 2008
Spazio dei nomi
Radice\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Vedi anche

Win32_MethodParameterClass

Classi del sistema operativo

Win32_Process

__ProviderHostQuotaConfiguration

Attività WMI: processi