Udostępnij za pośrednictwem


ProcessStartInfo.WindowStyle honorowany, gdy parametr UseShellExecute ma wartość false

Wcześniej był honorowany tylko wtedy, WindowStyle gdy UseShellExecute był true. Ta zmiana honoruje WindowStyle nawet wtedy, gdy UseShellExecute ma wartość false.

Poprzednie zachowanie

Przed tą zmianą następujący kod rozpoczął proces tak, jakby WindowStyle nie został określony, ponieważ UseShellExecute = false. Oznacza to, że okno było widoczne, a nie ukryte.

using System.Diagnostics;

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

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

Nowe zachowanie

Począwszy od platformy .NET 8, WindowStyle jest honorowany nawet w przypadku procesów uruchomionych z UseShellExecute = falseprogramem .

Kod z poprzedniej sekcji zachowania rozpoczyna proces z ukrytym oknem.

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 6)

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Niektóre scenariusze wymagają zmiany stylu okna procesu zduplikowanego (zwłaszcza w celu ukrycia go).

Ta zmiana ma wpływ na kod określony WindowStyle nawet wtedy, gdy nie był prawidłowo obsługiwany. Na przykład kolejność wypalania zdarzeń WPF jest teraz zmieniana. Aby wyeliminować zmianę powodującą niezgodność, nie należy określać WindowStyle w pliku ProcessStartInfo.

Dotyczy interfejsów API