classe Win32_ProcessStartup

La Win32_ProcessStartupclasse WMI abstraite représente la configuration de démarrage d’un processus Windows. La classe est définie comme une définition de type de méthode, ce qui signifie qu’elle est utilisée uniquement pour transmettre des informations à la méthode Create de la classe Win32_Process .

La syntaxe suivante est simplifiée à partir de code au format MOF (Managed Object Format) et inclut toutes les propriétés héritées.

Syntaxe

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

Membres

La classe Win32_ProcessStartup a les types de membres suivants :

Propriétés

La classe Win32_ProcessStartup possède ces propriétés.

CreateFlags

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Fonctions de processus et de thread | CreateProcess|dwCreationFlags »)

Valeurs supplémentaires qui contrôlent la classe de priorité et la création du processus. Les valeurs de création suivantes peuvent être spécifiées dans n’importe quelle combinaison, sauf indication contraire.

Debug_Process (1)

Si cet indicateur est défini, le processus appelant est traité comme un débogueur et le nouveau processus est débogué. Le système avertit le débogueur de tous les événements de débogage qui se produisent dans le processus en cours de débogage.

Debug_Only_This_Process (2)

Si cet indicateur n’est pas défini et que le processus appelant est en cours de débogage, le nouveau processus devient un autre processus en cours de débogage. Si le processus d’appel n’est pas un processus de débogage, aucune action liée au débogage ne se produit.

Create_Suspended (4)

Le thread principal du nouveau processus est créé dans un état suspendu et ne s’exécute pas tant que la méthode ResumeThread n’est pas appelée.

Detached_Process (8)

Pour les processus console, le nouveau processus n’a pas accès à la console du processus parent. Cet indicateur ne peut pas être utilisé si l’indicateur Create_New_Console est défini.

Create_New_Console (16)

Ce nouveau processus a une nouvelle console, au lieu d’hériter de la console parente. Cet indicateur ne peut pas être utilisé avec l’indicateur Detached_Process .

Create_New_Process_Group (512)

Ce nouveau processus est le processus racine d’un nouveau groupe de processus. Le groupe de processus inclut tous les processus qui sont descendants de ce processus racine. L’identificateur de processus du nouveau groupe de processus est identique à l’identificateur de processus retourné dans la propriété ProcessID de la classe Win32_Process . Les groupes de processus sont utilisés par la méthode GenerateConsoleCtrlEvent pour permettre l’envoi d’un signal CTRL+C ou d’un signal CTRL+BREAK à un groupe de processus console.

Create_Unicode_Environment (1024)

Les paramètres d’environnement répertoriés dans la propriété EnvironmentVariables utilisent des caractères Unicode. Si cet indicateur n’est pas défini, le bloc d’environnement utilise des caractères ANSI.

Create_Default_Error_Mode (67108864)

Les processus nouvellement créés reçoivent le mode d’erreur système par défaut du processus appelant au lieu d’hériter du mode d’erreur du processus parent. Cet indicateur est utile pour les applications shell multithread qui s’exécutent avec des erreurs matérielles désactivées.

CREATE_BREAKAWAY_FROM_JOB (16777216)

Utilisé pour que le processus créé ne soit pas limité par l’objet de travail.

EnvironmentVariables

Type de données : tableau de chaînes

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32Registry|HKEY_CURRENT_USER\\Environment")

Liste des paramètres pour la configuration d’un ordinateur. Les variables d’environnement spécifient des chemins de recherche pour les fichiers, des répertoires pour les fichiers temporaires, des options spécifiques à l’application et d’autres informations similaires. Le système gère un bloc de paramètres d’environnement pour chaque utilisateur et un pour l’ordinateur. Le bloc d’environnement système représente des variables d’environnement pour tous les utilisateurs d’un ordinateur spécifique. Le bloc d’environnement d’un utilisateur représente les variables d’environnement que le système gère pour un utilisateur spécifique et inclut l’ensemble des variables d’environnement système. Par défaut, chaque processus reçoit une copie du bloc d’environnement pour son processus parent. En règle générale, il s’agit du bloc d’environnement de l’utilisateur connecté. Un processus peut spécifier différents blocs d’environnement pour ses processus enfants.

ErrorMode

Type de données : uint16

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Fonctions d’erreur| SetErrorMode »)

Sur certains processeurs non x86, les références de mémoire mal alignées provoquent une exception d’erreur d’alignement. L’indicateur No_Alignment_Fault_Except vous permet de contrôler si un système d’exploitation corrige automatiquement ces erreurs d’alignement ou les rend visibles pour une application. Sur une plateforme de millions d’instructions par seconde (MIPS), une application doit appeler explicitement SetErrorMode avec l’indicateur No_Alignment_Fault_Except pour que le système d’exploitation corrige automatiquement les erreurs d’alignement.

Comment un système d’exploitation traite plusieurs types d’erreurs graves. Vous pouvez spécifier que le système d’exploitation traite les erreurs ou qu’une application peut recevoir et traiter des erreurs.

Le paramètre par défaut est que le système d’exploitation rende les erreurs d’alignement visibles pour une application. Étant donné que la plateforme x86 ne rend pas les erreurs d’alignement visibles pour une application, l’indicateur No_Alignment_Fault_Except ne fait pas que le système d’exploitation déclenche une erreur d’alignement, même si l’indicateur n’est pas défini. L’état par défaut pour SetErrorMode consiste à définir tous les indicateurs sur 0 (zéro).

(1)

Default

Fail_Critical_Errors (2)

Si cet indicateur est défini, le système d’exploitation n’affiche pas la boîte de message du gestionnaire d’erreurs critique lorsqu’une telle erreur se produit. Au lieu de cela, le système d’exploitation envoie l’erreur au processus appelant.

No_Alignment_Fault_Except (4)

Si cet indicateur est défini, le système d’exploitation corrige automatiquement les erreurs d’alignement de la mémoire et les rend invisibles pour l’application. Il effectue cette opération pour les processus appelants et descendants. Cet indicateur s’applique uniquement à l’informatique de jeu d’instructions réduit (RISC) et n’a aucun effet sur les processeurs x86.

No_GP_Fault_Error_Box (8)

Si cet indicateur est défini, le système d’exploitation n’affiche pas la zone de message d’erreur de protection générale (GP) lorsqu’une erreur de stratégie de groupe se produit. Cet indicateur doit uniquement être défini par le débogage des applications qui gèrent les erreurs de stratégie de groupe.

No_Open_File_Error_Box (16)

Si cet indicateur est défini, le système d’exploitation n’affiche pas de boîte de message lorsqu’il ne parvient pas à trouver un fichier. Au lieu de cela, l’erreur est retournée au processus appelant. Cet indicateur est actuellement ignoré.

FillAttribute

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|dwFillAttribute »)

Les couleurs du texte et de l’arrière-plan si une nouvelle fenêtre de console est créée dans une application console. Ces valeurs sont ignorées dans les applications d’interface utilisateur graphique (GUI). Pour spécifier les couleurs de premier plan et d’arrière-plan, ajoutez les valeurs ensemble. Par exemple, pour avoir le type rouge (4) sur un arrière-plan bleu (16), définissez FillAttribute sur 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

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | JOBOBJECT_BASIC_LIMIT_INFORMATION| PriorityClass »)

Classe de priorité du nouveau processus. Utilisez cette propriété pour déterminer les priorités de planification des threads dans le processus. Si la propriété est laissée null, la classe de priorité est définie par défaut sur Normal, sauf si la classe de priorité du processus de création est Inactive ou Below_Normal. Dans ce cas, le processus enfant reçoit la classe de priorité par défaut du processus appelant.

Normal (32)

Indique un processus normal sans besoin de planification spéciale.

Inactif (64)

Indique un processus avec des threads qui s’exécutent uniquement lorsque le système est inactif et sont préemptés par les threads d’un processus exécuté dans une classe de priorité plus élevée. Par exemple, un économiseur d’écran. La classe de priorité inactive est héritée par les processus enfants.

Élevé (128)

Indique un processus qui effectue des tâches à durée critique qui doivent être exécutées immédiatement pour s’exécuter correctement. Les threads d’un processus de classe de priorité élevée préemptent les threads des processus de classe de priorité normale ou inactive. Par exemple, la liste des tâches Windows doit répondre rapidement lorsqu’elle est appelée par l’utilisateur, quelle que soit la charge sur le système d’exploitation. Faites très attention lors de l’utilisation de la classe haute priorité, car une application liée à l’UC de classe haute priorité peut utiliser presque tous les cycles disponibles. Seule une priorité en temps réel préempte les threads définis à ce niveau.

Temps réel (256)

Indique un processus qui a la priorité la plus élevée possible. Les threads d’un processus de classe de priorité en temps réel préemptent les threads de tous les autres processus, y compris les threads de haute priorité et les processus de système d’exploitation effectuant des tâches importantes. Par exemple, un processus en temps réel qui s’exécute pendant plus d’un intervalle très court peut empêcher le vidage des caches de disque ou empêcher la réponse d’une souris.

Below_Normal (16384)

Indique un processus dont la priorité est supérieure à Inactive, mais inférieure à La normale.

Above_Normal (32768)

Indique un processus dont la priorité est supérieure à Normale, mais inférieure à Élevée.

ShowWindow

Type de données : uint16

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|wShowWindow »)

Comment la fenêtre est affichée à l’utilisateur. Il peut s’agir de l’une des valeurs qui peuvent être spécifiées dans le paramètre nCmdShow pour la fonction ShowWindow .

Titre

Type de données : chaîne

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|lpTitle »)

Texte affiché dans la barre de titre lors de la création d’une nouvelle fenêtre de console ; utilisé pour les processus de console. Si la valeur est NULL, le nom du fichier exécutable est utilisé comme titre de la fenêtre. Cette propriété doit avoir la valeur NULL pour les processus d’interface utilisateur graphique ou de console qui ne créent pas de fenêtre de console.

WinstationDesktop

Type de données : chaîne

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|lpDesktop »)

Nom du bureau ou nom du bureau et de la station de fenêtre pour le processus. Une barre oblique inverse dans la chaîne indique que la chaîne inclut à la fois les noms de station de bureau et de fenêtre. Si WinstationDesktop a la valeur NULL, le nouveau processus hérite du bureau et de la station de fenêtre de son processus parent. Si WinstationDesktop est une chaîne vide, le processus n’hérite pas du bureau et de la station de fenêtre de son processus parent. Le système détermine si un bureau et une nouvelle station de fenêtre doivent être créés. Une station de fenêtre est un objet sécurisé qui contient un Presse-papiers, un ensemble d’atomes globaux et un groupe d’objets de bureau. La station de fenêtre interactive qui est affectée à la session d’ouverture de session de l’utilisateur interactif contient également le clavier, la souris et le périphérique d’affichage. Un bureau est un objet sécurisé contenu dans une station de fenêtre. Un bureau a une surface d’affichage logique et contient des fenêtres, des menus et des crochets. Une station de fenêtre peut avoir plusieurs bureaux. Seuls les bureaux de la station de fenêtre interactive peuvent être visibles et recevoir une entrée utilisateur.

X

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|dwX »)

Décalage X du coin supérieur gauche d’une fenêtre si une nouvelle fenêtre est créée, en pixels. Les décalages proviennent du coin supérieur gauche de l’écran. Pour les processus d’interface graphique graphique, la position spécifiée est utilisée la première fois que le nouveau processus appelle CreateWindow pour créer une fenêtre superposée si le paramètre X de CreateWindow est CW_USEDEFAULT.

[! Remarque X]
et Y ne peuvent pas être spécifiés indépendamment.

 

XCountChars

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO| XCountChars »)

Largeur de la mémoire tampon d’écran dans les colonnes de caractères. Cette propriété est utilisée pour les processus qui créent une fenêtre de console et est ignorée dans les processus gui.

Notes

XCountChars et YCountChars ne peuvent pas être spécifiés indépendamment.

 

XSize

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|dwXSize »)

Largeur des pixels d’une fenêtre si une nouvelle fenêtre est créée. Pour les processus d’interface graphique graphique, cela est utilisé uniquement la première fois que le nouveau processus appelle CreateWindow pour créer une fenêtre superposée si le paramètre nWidth de CreateWindow est CW_USEDEFAULT.

Notes

XSize et YSize ne peuvent pas être spécifiés indépendamment.

 

O

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|dwY »)

Décalage en pixels du coin supérieur gauche d’une fenêtre si une nouvelle fenêtre est créée. Les décalages proviennent du coin supérieur gauche de l’écran. Pour les processus gui, la position spécifiée est utilisée la première fois que le nouveau processus appelle CreateWindow pour créer une fenêtre superposée si le paramètre y de CreateWindow est CW_USEDEFAULT.

[! Remarque X]
et Y ne peuvent pas être spécifiés indépendamment.

 

YCountChars

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO| YCountChars »)

Hauteur de la mémoire tampon d’écran dans les lignes de caractères. Cette propriété est utilisée pour les processus qui créent une fenêtre de console, mais elle est ignorée dans les processus GUI.

Notes

XCountChars et YCountChars ne peuvent pas être spécifiés indépendamment.

 

YSize

Type de données : uint32

Type d’accès : Lecture/écriture

Qualificateurs : MappingStrings (« Win32API| Structures de processus et de threads | STARTUPINFO|dwYSize »)

Hauteur de pixels d’une fenêtre si une nouvelle fenêtre est créée. Pour les processus d’interface graphique graphique, cela n’est utilisé que la première fois que le nouveau processus appelle CreateWindow pour créer une fenêtre qui se chevauche si le paramètre nWidth de CreateWindow est CW_USEDEFAULT.

Notes

XSize et YSize ne peuvent pas être spécifiés indépendamment.

 

Notes

Cette classe est dérivée de Win32_MethodParameterClass.

Vue d’ensemble

La méthode Create Win32_Process vous permet de configurer les options de démarrage pour tout nouveau processus s’exécutant sur un ordinateur. Par exemple, vous pouvez configurer un processus de sorte qu’il démarre dans une fenêtre « masquée », ce qui empêche un utilisateur de le voir, voire de l’interrompre. Si le processus s’exécute dans une fenêtre de commande, vous pouvez configurer la taille, le titre, ainsi que les couleurs de premier plan et d’arrière-plan de la fenêtre.

Les options de démarrage sont configurées à l’aide de la classe Win32_ProcessStartup . Win32_ProcessStartup est une classe de type de méthode ; la classe Type de méthode existe uniquement pour transmettre des informations à une méthode. Dans ce cas, toutes les propriétés d’un instance de Win32_ProcessStartup sont passées à un instance de Win32_Process.

Utilisation de Win32_ProcessStartup

  1. Créez un instance de Win32_ProcessStartup.
  2. Configurez les propriétés du nouveau instance.
  3. Incluez le instance dans le cadre de la méthode create Win32_Process.

Par exemple, si vous avez créé un Win32_ProcessStartup instance nommé objConfig, vous devez passer le nom de l’objet dans la méthode Create comme suit :

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

Exemples

Vous pouvez utiliser la classe Win32_ProcessStartup pour configurer différentes options de démarrage pour un processus. Ces options incluent, sans s’y limiter, des éléments tels que la création d’un processus dans une fenêtre masquée et la création d’un processus de priorité supérieure. Le code VBScript suivant crée un processus dans une fenêtre masquée.

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)

Le code VBScript suivant crée un processus de priorité supérieure.

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

L’exemple de code VBScript suivant crée un processus bloc-notes sur l’ordinateur local. Win32_ProcessStartup est utilisé pour configurer les paramètres de processus.

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista
Serveur minimal pris en charge
Windows Server 2008
Espace de noms
Racine\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Voir aussi

Win32_MethodParameterClass

Classes du système d’exploitation

Win32_Process

__ProviderHostQuotaConfiguration

Tâches WMI : Processus