Win32_ProcessStartup clase

La clase WMI abstracta Win32_ProcessStartup representa la configuración de inicio de un proceso basado en Windows. La clase se define como una definición de tipo de método, lo que significa que solo se usa para pasar información al método Create de la clase Win32_Process .

La siguiente sintaxis se simplifica desde el código de Managed Object Format (MOF) e incluye todas las propiedades heredadas.

Sintaxis

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

Miembros

La clase Win32_ProcessStartup tiene estos tipos de miembros:

Propiedades

La clase Win32_ProcessStartup tiene estas propiedades.

CreateFlags

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Funciones de proceso y subproceso | CreateProcess|dwCreationFlags")

Valores adicionales que controlan la clase de prioridad y la creación del proceso. Los siguientes valores de creación se pueden especificar en cualquier combinación, excepto como se indica.

Debug_Process (1)

Si se establece esta marca, el proceso de llamada se trata como depurador y se depura el nuevo proceso. El sistema notifica al depurador de todos los eventos de depuración que se producen en el proceso que se está depurando.

Debug_Only_This_Process (2)

Si no se establece esta marca y se depura el proceso de llamada, el nuevo proceso se convierte en otro proceso que se está depurando. Si el proceso de llamada no es un proceso de depuración, no se producen acciones relacionadas con la depuración.

Create_Suspended (4)

El subproceso principal del nuevo proceso se crea en un estado suspendido y no se ejecuta hasta que se llama al método ResumeThread .

Detached_Process (8)

En el caso de los procesos de consola, el nuevo proceso no tiene acceso a la consola del proceso primario. Esta marca no se puede usar si se establece la marca de Create_New_Console .

Create_New_Console (16)

Este nuevo proceso tiene una nueva consola, en lugar de heredar la consola primaria. Esta marca no se puede usar con la marca Detached_Process .

Create_New_Process_Group (512)

Este nuevo proceso es el proceso raíz de un nuevo grupo de procesos. El grupo de procesos incluye todos los procesos que son descendientes de este proceso raíz. El identificador de proceso del nuevo grupo de procesos es el mismo que el identificador de proceso que se devuelve en la propiedad ProcessID de la clase Win32_Process . El método GenerateConsoleCtrlEvent usa grupos de procesos para habilitar el envío de una señal CTRL+C o una señal CTRL+BREAK a un grupo de procesos de consola.

Create_Unicode_Environment (1024)

La configuración del entorno que se muestra en la propiedad EnvironmentVariables usa caracteres Unicode. Si no se establece esta marca, el bloque de entorno usa caracteres ANSI.

Create_Default_Error_Mode (67108864)

A los procesos recién creados se les asigna el modo de error predeterminado del sistema del proceso de llamada en lugar de heredar el modo de error del proceso primario. Esta marca es útil para las aplicaciones de shell multiproceso que se ejecutan con errores duros deshabilitados.

CREATE_BREAKAWAY_FROM_JOB (16777216)

Se usa para que el proceso creado no esté limitado por el objeto de trabajo.

EnvironmentVariables

Tipo de datos: matriz de cadenas

Tipo de acceso: lectura/escritura

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

Lista de opciones para la configuración de un equipo. Las variables de entorno especifican rutas de búsqueda para archivos, directorios para archivos temporales, opciones específicas de la aplicación y otra información similar. El sistema mantiene un bloque de configuración de entorno para cada usuario y otro para el equipo. El bloque de entorno del sistema representa variables de entorno para todos los usuarios de un equipo específico. El bloque de entorno de un usuario representa las variables de entorno que el sistema mantiene para un usuario específico e incluye el conjunto de variables de entorno del sistema. De forma predeterminada, cada proceso recibe una copia del bloque de entorno para su proceso primario. Normalmente, este es el bloque de entorno para el usuario que ha iniciado sesión. Un proceso puede especificar distintos bloques de entorno para sus procesos secundarios.

ErrorMode

Tipo de datos: uint16

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Funciones de error| SetErrorMode")

En algunos procesadores que no son x86, las referencias de memoria no alineadas provocan una excepción de error de alineación. La marca No_Alignment_Fault_Except permite controlar si un sistema operativo corrige automáticamente estos errores de alineación o hace que sean visibles para una aplicación. En una plataforma de millones de instrucciones por segundo (MIPS), una aplicación debe llamar explícitamente a SetErrorMode con la marca No_Alignment_Fault_Except para que el sistema operativo corrija automáticamente los errores de alineación.

Cómo un sistema operativo procesa varios tipos de errores graves. Puede especificar que el sistema operativo procese errores o que una aplicación pueda recibir y procesar errores.

La configuración predeterminada es para que el sistema operativo haga que los errores de alineación sean visibles para una aplicación. Dado que la plataforma x86 no hace que los errores de alineación sean visibles para una aplicación, la marca No_Alignment_Fault_Except no hace que el sistema operativo genere un error de error de alineación, incluso si la marca no está establecida. El estado predeterminado de SetErrorMode es establecer todas las marcas en 0 (cero).

(1)

Valor predeterminado

Fail_Critical_Errors (2)

Si se establece esta marca, el sistema operativo no muestra el cuadro de mensaje crítico del controlador de errores cuando se produce este error. En su lugar, el sistema operativo envía el error al proceso de llamada.

No_Alignment_Fault_Except (4)

Si se establece esta marca, el sistema operativo corrige automáticamente los errores de alineación de memoria y los hace invisibles para la aplicación. Lo hace para los procesos que llaman y descendientes. Esta marca solo se aplica a la computación reducida de conjuntos de instrucciones (RISC) y no tiene ningún efecto en los procesadores x86.

No_GP_Fault_Error_Box (8)

Si se establece esta marca, el sistema operativo no muestra el cuadro de mensaje de error de protección general (GP) cuando se produce un error de GP. Esta marca solo se debe establecer mediante la depuración de aplicaciones que controlan errores de GP.

No_Open_File_Error_Box (16)

Si se establece esta marca, el sistema operativo no muestra un cuadro de mensaje cuando no encuentra un archivo. En su lugar, el error se devuelve al proceso de llamada. Esta marca se omite actualmente.

FillAttribute

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|dwFillAttribute")

Los colores de texto y fondo si se crea una nueva ventana de consola en una aplicación de consola. Estos valores se omiten en aplicaciones gráficas de interfaz de usuario (GUI). Para especificar colores de primer plano y de fondo, agregue los valores juntos. Por ejemplo, para tener un tipo rojo (4) en un fondo azul (16), establezca FillAttribute en 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 de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | JOBOBJECT_BASIC_LIMIT_INFORMATION| PriorityClass")

Clase de prioridad del nuevo proceso. Utilice esta propiedad para determinar las prioridades de programación de los subprocesos del proceso. Si la propiedad se deja null, la clase priority tiene como valor predeterminado Normal, a menos que la clase de prioridad del proceso de creación sea Inactiva o Below_Normal. En estos casos, el proceso secundario recibe la clase de prioridad predeterminada del proceso de llamada.

Normal (32)

Indica un proceso normal sin necesidad de programación especial.

Inactivo (64)

Indica un proceso con subprocesos que solo se ejecutan cuando el sistema está inactivo y los subprocesos de cualquier proceso que se ejecuta en una clase de prioridad más alta. Un ejemplo es un protector de pantalla. Los procesos secundarios heredan la clase de prioridad inactiva.

Alto (128)

Indica un proceso que realiza tareas críticas para el tiempo que se deben ejecutar inmediatamente para que se ejecuten correctamente. Los subprocesos de un proceso de clase de prioridad alta reemplazan los subprocesos de los procesos de clase de prioridad normal o de prioridad inactiva. Un ejemplo es lista de tareas de Windows, que debe responder rápidamente cuando el usuario llama, independientemente de la carga en el sistema operativo. Use un cuidado extremo al usar la clase de prioridad alta, ya que una aplicación enlazada a CPU de clase de alta prioridad puede usar casi todos los ciclos disponibles. Solo un preempte de prioridad en tiempo real establece subprocesos en este nivel.

Tiempo real (256)

Indica un proceso que tiene la prioridad más alta posible. Los subprocesos de un proceso de clase de prioridad en tiempo real reemplazan a los subprocesos de todos los demás procesos, incluidos los subprocesos de prioridad alta y los procesos del sistema operativo que realizan tareas importantes. Por ejemplo, un proceso en tiempo real que se ejecuta durante más de un intervalo muy breve puede provocar que las memorias caché de disco no se vacíen o que un mouse deje de responder.

Below_Normal (16384)

Indica un proceso que tiene una prioridad mayor que Inactiva pero inferior a Normal.

Above_Normal (32768)

Indica un proceso que tiene una prioridad mayor que Normal pero inferior a Alta.

ShowWindow

Tipo de datos: uint16

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|wShowWindow")

Cómo se muestra la ventana al usuario. Puede ser cualquiera de los valores que se pueden especificar en el parámetro nCmdShow para la función ShowWindow .

Título

Tipo de datos: cadena

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|lpTitle")

Texto que se muestra en la barra de título cuando se crea una nueva ventana de consola; se usa para los procesos de consola. Si es NULL, el nombre del archivo ejecutable se usa como título de la ventana. Esta propiedad debe ser NULL para los procesos de gui o consola que no crean una nueva ventana de consola.

WinstationDesktop

Tipo de datos: cadena

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|lpDesktop")

El nombre del escritorio o el nombre de la estación de escritorio y ventana del proceso. Una barra diagonal inversa en la cadena indica que la cadena incluye nombres de estación de escritorio y ventana. Si WinstationDesktop es NULL, el nuevo proceso hereda la estación de escritorio y ventana de su proceso primario. Si WinstationDesktop es una cadena vacía, el proceso no hereda la estación de escritorio y ventana de su proceso primario. El sistema determina si se debe crear una nueva estación de escritorio y ventana. Una estación de ventana es un objeto seguro que contiene un Portapapeles, un conjunto de átomos globales y un grupo de objetos de escritorio. La estación de ventana interactiva que se asigna a la sesión de inicio de sesión del usuario interactivo también contiene el teclado, el mouse y el dispositivo de visualización. Un escritorio es un objeto seguro contenido en una estación de ventanas. Un escritorio tiene una superficie de visualización lógica y contiene ventanas, menús y enlaces. Una estación de ventana puede tener varios escritorios. Solo los escritorios de la estación de ventana interactiva pueden ser visibles y recibir entradas de usuario.

X

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|dwX")

Desplazamiento X de la esquina superior izquierda de una ventana si se crea una nueva ventana, en píxeles. Los desplazamientos proceden de la esquina superior izquierda de la pantalla. Para los procesos de GUI, la posición especificada se usa la primera vez que el nuevo proceso llama a CreateWindow para crear una ventana superpuesta si el parámetro X de CreateWindow es CW_USEDEFAULT.

[! Nota X]
y Y no se pueden especificar de forma independiente.

 

XCountChars

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO| XCountChars")

Ancho del búfer de pantalla en columnas de caracteres. Esta propiedad se usa para los procesos que crean una ventana de consola y se omiten en los procesos de GUI.

Nota

XCountChars y YCountChars no se pueden especificar de forma independiente.

 

XSize

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|dwXSize")

Ancho de píxel de una ventana si se crea una nueva ventana. En el caso de los procesos de GUI, esto solo se usa la primera vez que el nuevo proceso llama a CreateWindow para crear una ventana superpuesta si el parámetro nWidth de CreateWindow es CW_USEDEFAULT.

Nota

XSize e YSize no se pueden especificar de forma independiente.

 

S

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|dwY")

Desplazamiento de píxeles de la esquina superior izquierda de una ventana si se crea una nueva ventana. Los desplazamientos proceden de la esquina superior izquierda de la pantalla. Para los procesos de GUI, la posición especificada se usa la primera vez que el nuevo proceso llama a CreateWindow para crear una ventana superpuesta si el parámetro y de CreateWindow es CW_USEDEFAULT.

[! Nota X]
y Y no se pueden especificar de forma independiente.

 

YCountChars

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO| YCountChars")

Alto del búfer de pantalla en filas de caracteres. Esta propiedad se usa para los procesos que crean una ventana de consola, pero se omiten en los procesos de GUI.

Nota

XCountChars y YCountChars no se pueden especificar de forma independiente.

 

YSize

Tipo de datos: uint32

Tipo de acceso: lectura/escritura

Calificadores: MappingStrings ("Win32API| Estructuras de procesos y subprocesos | STARTUPINFO|dwYSize")

Alto de píxeles de una ventana si se crea una nueva ventana. Para los procesos de GUI, se usa solo la primera vez que el nuevo proceso llama a CreateWindow para crear una ventana superpuesta si el parámetro nWidth de CreateWindow es CW_USEDEFAULT.

Nota

XSize e YSize no se pueden especificar de forma independiente.

 

Comentarios

Esta clase se deriva de Win32_MethodParameterClass.

Información general

El Win32_Process método Create permite configurar opciones de inicio para cualquier proceso nuevo que se ejecute en un equipo. Por ejemplo, puede configurar un proceso para que se inicie en una ventana "oculta", lo que impide que un usuario vea y, posiblemente, interrumpa. Si el proceso se ejecuta en una ventana de comandos, puede configurar los colores de tamaño, título y primer plano y fondo de la ventana.

Las opciones de inicio se configuran mediante la clase Win32_ProcessStartup . Win32_ProcessStartup es una clase Tipo de método; La clase Method Type existe únicamente para pasar información a un método. En este caso, todas las propiedades de una instancia de Win32_ProcessStartup se pasan a una instancia de Win32_Process.

Uso de Win32_ProcessStartup

  1. Cree una instancia de Win32_ProcessStartup.
  2. Configure las propiedades de la nueva instancia.
  3. Incluya la instancia como parte del método Win32_Process Create.

Por ejemplo, si ha creado una instancia de Win32_ProcessStartup denominada objConfig, pasará el nombre del objeto en el método Create de la siguiente manera:

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

Ejemplos

Puede usar la clase Win32_ProcessStartup para configurar varias opciones de inicio para un proceso. Estas opciones incluyen, pero no se limitan a, como crear un proceso en una ventana oculta y crear un proceso de mayor prioridad. El siguiente VBScript crea un proceso en una ventana oculta.

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)

El siguiente VBScript crea un proceso de prioridad más alta.

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

En el ejemplo de código de VBScript siguiente se crea un proceso del Bloc de notas en el equipo local. Win32_ProcessStartup se usa para configurar los valores del proceso.

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

Requisitos

Requisito Value
Cliente mínimo compatible
Windows Vista
Servidor mínimo compatible
Windows Server 2008
Espacio de nombres
Root\CIMV2
MOF
CIMWin32.mof
Archivo DLL
CIMWin32.dll

Consulte también

Win32_MethodParameterClass

Clases de sistema operativo

Win32_Process

__ProviderHostQuotaConfiguration

Tareas de WMI: procesos