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).
Rekommenderad åtgärd
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.