ProcessStartInfo.WindowStyle se respeta cuando UseShellExecute es false

Anteriormente, solo se respetaba WindowStyle cuando UseShellExecute era true. Este cambio respeta WindowStyle incluso cuando UseShellExecute es false.

Comportamiento anterior

Antes de este cambio, el siguiente código inició el proceso como si WindowStyle no se hubiera especificado, porque UseShellExecute = false. Es decir, la ventana estaba visible, no oculta.

using System.Diagnostics;

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

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

Comportamiento nuevo

A partir de .NET 8, WindowStyle se respeta incluso para los procesos iniciados con UseShellExecute = false.

El código de la sección Comportamiento anterior inicia el proceso con la ventana oculta.

Versión introducida

.NET 8 Versión preliminar 6

Tipo de cambio importante

Este es un cambio de funcionamiento.

Motivo del cambio

Algunos escenarios requieren cambiar el estilo de la ventana del proceso generado (especialmente para ocultarlo).

Este cambio afecta al código especificado WindowStyle incluso cuando no se admitía correctamente. Por ejemplo, el orden de activación de eventos de WPF ahora se modifica. Para mitigar el cambio importante, no especifique WindowStyle en ProcessStartInfo.

API afectadas