ProcessStartInfo.WindowsStyle wird berücksichtigt, wenn UseShellExecute „false“ ist
Früher wurde WindowStyle nur anerkannt, als UseShellExecute true
war. Diese Änderung berücksichtigt WindowStyle auch dann, wenn UseShellExecute false
ist.
Vorheriges Verhalten
Vor dieser Änderung hat der folgende Code den Prozess gestartet, weil WindowStyle wegen UseShellExecute = false
nicht angegeben wurde. Das heißt, das Fenster war sichtbar, nicht ausgeblendet.
using System.Diagnostics;
ProcessStartInfo startInfo = new()
{
FileName = @"C:\Windows\System32\notepad.exe",
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden
};
var process = Process.Start(startInfo);
process!.WaitForExit();
Neues Verhalten
Ab .NET 8 wird WindowStyle auch für Prozesse berücksichtigt, die mit UseShellExecute = false
gestartet wurden.
Der Code aus dem Abschnitt Vorheriges Verhalten startet den Prozess mit dem ausgeblendeten Fenster.
Eingeführt in Version
.NET 8 Preview 6
Typ des Breaking Changes
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Einige Szenarien erfordern eine Änderung des Stils des Fensters des Spawned-Prozesses (insbesondere zum Ausblenden).
Empfohlene Maßnahme
Diese Änderung wirkt sich auf Code aus, der WindowStyle angegeben hat, auch wenn es nicht ordnungsgemäß unterstützt wurde. Beispielsweise wird die Reihenfolge des Auslösens von Ereignissen von WPF geändert. Um die grundlegende Änderung zu mildern, geben Sie WindowStyle
nicht in ProcessStartInfo an.