classe Win32_ProcessStartup

A classe WMI abstrata Win32_ProcessStartup representa a configuração de inicialização de um processo baseado no Windows. A classe é definida como uma definição de tipo de método, o que significa que ela só é usada para passar informações para o método Create da classe Win32_Process .

A sintaxe a seguir é simplificada do código MOF (Managed Object Format) e inclui todas as propriedades herdadas.

Sintaxe

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

Membros

A classe Win32_ProcessStartup tem estes tipos de membros:

Propriedades

A classe Win32_ProcessStartup tem essas propriedades.

Createflags

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Funções de processo e thread| CreateProcess|dwCreationFlags")

Valores adicionais que controlam a classe de prioridade e a criação do processo. Os valores de criação a seguir podem ser especificados em qualquer combinação, exceto conforme observado.

Debug_Process (1)

Se esse sinalizador estiver definido, o processo de chamada será tratado como um depurador e o novo processo será depurado. O sistema notifica o depurador de todos os eventos de depuração que ocorrem no processo que está sendo depurado.

Debug_Only_This_Process (2)

Se esse sinalizador não estiver definido e o processo de chamada estiver sendo depurado, o novo processo se tornará outro processo sendo depurado. Se o processo de chamada não for um processo de depuração, nenhuma ação relacionada à depuração ocorrerá.

Create_Suspended (4)

O thread primário do novo processo é criado em um estado suspenso e não é executado até que o método ResumeThread seja chamado.

Detached_Process (8)

Para processos de console, o novo processo não tem acesso ao console do processo pai. Esse sinalizador não poderá ser usado se o sinalizador Create_New_Console estiver definido.

Create_New_Console (16)

Esse novo processo tem um novo console, em vez de herdar o console pai. Esse sinalizador não pode ser usado com o sinalizador Detached_Process .

Create_New_Process_Group (512)

Esse novo processo é o processo raiz de um novo grupo de processos. O grupo de processos inclui todos os processos descendentes desse processo raiz. O identificador de processo do novo grupo de processos é o mesmo que o identificador de processo retornado na propriedade ProcessID da classe Win32_Process . Os grupos de processos são usados pelo método GenerateConsoleCtrlEvent para habilitar o envio de um sinal CTRL+C ou um sinal CTRL+BREAK para um grupo de processos de console.

Create_Unicode_Environment (1024)

As configurações de ambiente listadas na propriedade EnvironmentVariables usam caracteres Unicode. Se esse sinalizador não estiver definido, o bloco de ambiente usará caracteres ANSI.

Create_Default_Error_Mode (67108864)

Os processos recém-criados recebem o modo de erro padrão do sistema do processo de chamada em vez de herdar o modo de erro do processo pai. Esse sinalizador é útil para aplicativos de shell multithread que são executados com erros rígidos desabilitados.

CREATE_BREAKAWAY_FROM_JOB (16777216)

Usado para o processo criado não ser limitado pelo objeto de trabalho.

Environmentvariables

Tipo de dados: matriz de cadeia de caracteres

Tipo de acesso: leitura/gravação

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

Lista de configurações para a configuração de um computador. As variáveis de ambiente especificam caminhos de pesquisa para arquivos, diretórios para arquivos temporários, opções específicas do aplicativo e outras informações semelhantes. O sistema mantém um bloco de configurações de ambiente para cada usuário e um para o computador. O bloco de ambiente do sistema representa variáveis de ambiente para todos os usuários de um computador específico. O bloco de ambiente de um usuário representa as variáveis de ambiente que o sistema mantém para um usuário específico e inclui o conjunto de variáveis de ambiente do sistema. Por padrão, cada processo recebe uma cópia do bloco de ambiente para seu processo pai. Normalmente, esse é o bloco de ambiente para o usuário que está conectado. Um processo pode especificar diferentes blocos de ambiente para seus processos filho.

ErrorMode

Tipo de dados: uint16

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Funções de erro| SetErrorMode")

Em alguns processadores não x86, referências de memória desalinhadas causam uma exceção de falha de alinhamento. O sinalizador No_Alignment_Fault_Except permite controlar se um sistema operacional corrige automaticamente essas falhas de alinhamento ou as torna visíveis para um aplicativo. Em uma plataforma MIPS (milhões de instruções por segundo), um aplicativo deve chamar explicitamente SetErrorMode com o sinalizador No_Alignment_Fault_Except para que o sistema operacional corrija automaticamente falhas de alinhamento.

Como um sistema operacional processa vários tipos de erros graves. Você pode especificar que os erros de processo do sistema operacional ou um aplicativo pode receber e processar erros.

A configuração padrão é que o sistema operacional torne as falhas de alinhamento visíveis para um aplicativo. Como a plataforma x86 não torna as falhas de alinhamento visíveis para um aplicativo, o sinalizador No_Alignment_Fault_Except não faz com que o sistema operacional gere um erro de falha de alinhamento, mesmo que o sinalizador não esteja definido. O estado padrão para SetErrorMode é definir todos os sinalizadores como 0 (zero).

(1)

Padrão

Fail_Critical_Errors (2)

Se esse sinalizador estiver definido, o sistema operacional não exibirá a caixa de mensagem do manipulador de erros crítico quando esse erro ocorrer. Em vez disso, o sistema operacional envia o erro para o processo de chamada.

No_Alignment_Fault_Except (4)

Se esse sinalizador for definido, o sistema operacional corrigirá automaticamente as falhas de alinhamento de memória e as tornará invisíveis para o aplicativo. Ele faz isso para os processos de chamada e descendentes. Esse sinalizador se aplica somente à RISC (computação de conjunto de instruções) reduzida e não tem efeito sobre processadores x86.

No_GP_Fault_Error_Box (8)

Se esse sinalizador estiver definido, o sistema operacional não exibirá a caixa de mensagem de falha de GP (proteção geral) quando ocorrer um erro de GP. Esse sinalizador só deve ser definido por meio da depuração de aplicativos que lidam com erros de GP.

No_Open_File_Error_Box (16)

Se esse sinalizador estiver definido, o sistema operacional não exibirá uma caixa de mensagem quando não encontrar um arquivo. Em vez disso, o erro é retornado ao processo de chamada. No momento, esse sinalizador é ignorado.

FillAttribute

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread| STARTUPINFO|dwFillAttribute")

O texto e as cores da tela de fundo se uma nova janela de console for criada em um aplicativo de console. Esses valores são ignorados em aplicativos gui (interface gráfica do usuário). Para especificar as cores de primeiro plano e de plano de fundo, adicione os valores juntos. Por exemplo, para ter o tipo vermelho (4) em uma tela de fundo azul (16), defina FillAttribute como 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 dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | JOBOBJECT_BASIC_LIMIT_INFORMATION| PriorityClass")

Classe de prioridade do novo processo. Use essa propriedade para determinar as prioridades de agendamento dos threads no processo. Se a propriedade for deixada como nula, a classe de prioridade usará como padrão Normal, a menos que a classe de prioridade do processo de criação seja Idle ou Below_Normal. Nesses casos, o processo filho recebe a classe de prioridade padrão do processo de chamada.

Normal (32)

Indica um processo normal sem necessidades de agendamento especiais.

Ocioso (64)

Indica um processo com threads que são executados somente quando o sistema está ocioso e são preempcionados pelos threads de qualquer processo em execução em uma classe de prioridade mais alta. Um exemplo é um protetor de tela. A classe de prioridade ociosa é herdada por processos filho.

Alta (128)

Indica um processo que executa tarefas críticas de tempo que devem ser executadas imediatamente para serem executadas corretamente. Os threads de um processo de classe de alta prioridade preempõem os threads de processos de classe de prioridade normal ou de prioridade ociosa. Um exemplo é a Lista de Tarefas do Windows, que deve responder rapidamente quando chamada pelo usuário, independentemente da carga no sistema operacional. Use um cuidado extremo ao usar a classe de alta prioridade, pois um aplicativo associado à CPU de classe de alta prioridade pode usar quase todos os ciclos disponíveis. Somente uma prioridade em tempo real impede que os threads sejam definidos para esse nível.

Tempo real (256)

Indica um processo que tem a prioridade mais alta possível. Os threads de um processo de classe de prioridade em tempo real preempõem os threads de todos os outros processos, incluindo threads de alta prioridade e processos do sistema operacional executando tarefas importantes. Por exemplo, um processo em tempo real executado por mais de um intervalo muito breve pode fazer com que os caches de disco não sejam liberados ou fazer com que um mouse não responda.

Below_Normal (16384)

Indica um processo que tem uma prioridade maior que o ocioso, mas menor que Normal.

Above_Normal (32768)

Indica um processo que tem uma prioridade maior que Normal, mas menor que Alta.

Showwindow

Tipo de dados: uint16

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|wShowWindow")

Como a janela é exibida para o usuário. Pode ser qualquer um dos valores que podem ser especificados no parâmetro nCmdShow para a função ShowWindow .

Título

Tipo de dados: cadeia de caracteres

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|lpTitle")

Texto exibido na barra de título quando uma nova janela do console é criada; usado para processos de console. Se FOR NULL, o nome do arquivo executável será usado como o título da janela. Essa propriedade deve ser NULL para gui ou processos de console que não criam uma nova janela de console.

WinstationDesktop

Tipo de dados: cadeia de caracteres

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|lpDesktop")

O nome da área de trabalho ou o nome da área de trabalho e da estação de janela para o processo. Uma barra invertida na cadeia de caracteres indica que a cadeia de caracteres inclui nomes de estação da área de trabalho e da janela. Se WinstationDesktop for NULL, o novo processo herdará a área de trabalho e a estação de janela de seu processo pai. Se WinstationDesktop for uma cadeia de caracteres vazia, o processo não herdará a área de trabalho e a estação de janela de seu processo pai. O sistema determina se uma nova área de trabalho e uma estação de janela devem ser criadas. Uma estação de janela é um objeto seguro que contém uma área de transferência, um conjunto de átomos globais e um grupo de objetos de área de trabalho. A estação de janela interativa atribuída à sessão de logon do usuário interativo também contém o teclado, o mouse e o dispositivo de exibição. Uma área de trabalho é um objeto seguro contido em uma estação de janela. Uma área de trabalho tem uma superfície de exibição lógica e contém janelas, menus e ganchos. Uma estação de janela pode ter várias áreas de trabalho. Somente as áreas de trabalho da estação de janela interativa podem estar visíveis e receber a entrada do usuário.

X

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|dwX")

O deslocamento X do canto superior esquerdo de uma janela se uma nova janela for criada — em pixels. Os deslocamentos são do canto superior esquerdo da tela. Para processos de GUI, a posição especificada é usada na primeira vez que o novo processo chama CreateWindow para criar uma janela sobreposta se o parâmetro X de CreateWindow for CW_USEDEFAULT.

[! Observação X]
e Y não podem ser especificados independentemente.

 

XCountChars

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO| XCountChars")

Largura do buffer de tela em colunas de caracteres. Essa propriedade é usada para processos que criam uma janela de console e é ignorada nos processos de GUI.

Observação

XCountChars e YCountChars não podem ser especificados independentemente.

 

XSize

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|dwXSize")

Largura do pixel de uma janela se uma nova janela for criada. Para processos de GUI, isso só será usado na primeira vez que o novo processo chamar CreateWindow para criar uma janela sobreposta se o parâmetro nWidth de CreateWindow for CW_USEDEFAULT.

Observação

XSize e YSize não podem ser especificados independentemente.

 

S

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|dwY")

Deslocamento de pixel do canto superior esquerdo de uma janela se uma nova janela for criada. Os deslocamentos são do canto superior esquerdo da tela. Para processos de GUI, a posição especificada é usada na primeira vez que o novo processo chama CreateWindow para criar uma janela sobreposta se o parâmetro y de CreateWindow for CW_USEDEFAULT.

[! Observação X]
e Y não podem ser especificados independentemente.

 

YCountChars

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO| YCountChars")

Altura do buffer de tela em linhas de caracteres. Essa propriedade é usada para processos que criam uma janela de console, mas é ignorada nos processos de GUI.

Observação

XCountChars e YCountChars não podem ser especificados independentemente.

 

YSize

Tipo de dados: uint32

Tipo de acesso: leitura/gravação

Qualificadores: MappingStrings ("Win32API| Estruturas de processo e thread | STARTUPINFO|dwYSize")

Altura do pixel de uma janela se uma nova janela for criada. Para processos de GUI, isso é usado apenas na primeira vez que o novo processo chama CreateWindow para criar uma janela sobreposta se o parâmetro nWidth de CreateWindow for CW_USEDEFAULT.

Observação

XSize e YSize não podem ser especificados independentemente.

 

Comentários

Essa classe é derivada de Win32_MethodParameterClass.

Visão geral

O método Win32_ProcessCreate permite configurar opções de inicialização para qualquer novo processo em execução em um computador. Por exemplo, você pode configurar um processo para que ele comece em uma janela "oculta", o que impede que um usuário veja e possivelmente interrompa. Se o processo for executado em uma janela de comando, você poderá configurar o tamanho, o título e as cores de primeiro plano e plano de fundo da janela.

As opções de inicialização são configuradas usando a classe Win32_ProcessStartup . Win32_ProcessStartup é uma classe method type; a classe Method Type existe apenas para passar informações para um método. Nesse caso, todas as propriedades de uma instância de Win32_ProcessStartup são passadas para uma instância do Win32_Process.

Usando Win32_ProcessStartup

  1. Crie uma instância de Win32_ProcessStartup.
  2. Configure as propriedades da nova instância.
  3. Inclua a instância como parte do método Win32_Process Create.

Por exemplo, se você tiver criado uma instância de Win32_ProcessStartup chamada objConfig, passará o nome do objeto no método Create da seguinte maneira:

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

Exemplos

Você pode usar a classe Win32_ProcessStartup para configurar várias opções de inicialização para um processo. Essas opções incluem, mas não se limitam a, como criar um processo em uma janela oculta e criar um processo de prioridade mais alta. O VBScript a seguir cria um processo em uma janela 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)

O VBScript a seguir cria um processo de prioridade mais 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

O exemplo de código VBScript a seguir cria um processo do Bloco de Notas no computador local. Win32_ProcessStartup é usado para definir as configurações do 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

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista
Servidor mínimo com suporte
Windows Server 2008
Namespace
Root\CIMV2
MOF
CIMWin32.mof
DLL
CIMWin32.dll

Confira também

Win32_MethodParameterClass

Classes do sistema operacional

Win32_Process

__ProviderHostQuotaConfiguration

Tarefas WMI: processos