Partilhar via


ProcessStartInfo.WindowStyle honrado quando UseShellExecute é falso

Anteriormente, WindowStyle só era homenageado quando UseShellExecute era true. Esta mudança honra WindowStyle mesmo quando UseShellExecute é false.

Comportamento anterior

Antes dessa alteração, o código a seguir iniciava o processo como se WindowStyle não tivesse sido especificado, porque UseShellExecute = false. Ou seja, a janela era visível, não escondida.

using System.Diagnostics;

ProcessStartInfo startInfo = new()
{
    FileName = @"C:\Windows\System32\notepad.exe",
    UseShellExecute = false,
    WindowStyle = ProcessWindowStyle.Hidden
};

var process = Process.Start(startInfo);
process!.WaitForExit();

Novo comportamento

A partir do .NET 8, WindowStyle é honrado até mesmo para processos iniciados com UseShellExecute = falseo .

O código da seção Comportamento anterior inicia o processo com a janela oculta.

Versão introduzida

.NET 8 Visualização 6

Tipo de mudança de rutura

Esta mudança é uma mudança comportamental.

Razão para a alteração

Alguns cenários exigem a alteração do estilo da janela do processo gerado (especialmente para ocultá-la).

Essa alteração afeta o código especificado WindowStyle mesmo quando ele não foi suportado corretamente. Por exemplo, a ordem de disparo de eventos do WPF agora é alterada. Para atenuar a alteração de rutura, não especifique WindowStyle em ProcessStartInfo.

APIs afetadas