Dela via


ProcessStartInfo.WindowStyle respekteras när UseShellExecute är falskt

WindowStyle Tidigare hedrades bara när UseShellExecute var true. Den här ändringen respekteras WindowStyle även när UseShellExecute är false.

Tidigare beteende

Före den här ändringen startade följande kod processen som om WindowStyle den inte hade angetts, eftersom UseShellExecute = false. Det vill: fönstret var synligt, inte dolt.

using System.Diagnostics;

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

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

Nytt beteende

Från och med .NET 8 WindowStyle respekteras även för processer som startas med UseShellExecute = false.

Koden från avsnittet Föregående beteende startar processen med fönstret dolt.

Version introducerad

Förhandsversion 6 av .NET 8

Typ av icke-bakåtkompatibel ändring

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Vissa scenarier kräver att formatet för den skapade processens fönster ändras (särskilt för att dölja det).

Den här ändringen påverkar kod som angetts WindowStyle även när den inte stöds korrekt. WPF:s order för händelseavfyrning ändras till exempel nu. Om du vill minimera den icke-bakåtkompatibla ändringen anger du WindowStyle inte i ProcessStartInfo.

Berörda API:er