Freigeben über


ProcessStartInfo.WindowsStyle wird berücksichtigt, wenn UseShellExecute „false“ ist

Früher wurde WindowStyle nur anerkannt, als UseShellExecutetrue war. Diese Änderung berücksichtigt WindowStyle auch dann, wenn UseShellExecutefalse 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).

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.

Betroffene APIs