Aracılığıyla paylaş


UseShellExecute false olduğunda ProcessStartInfo.WindowStyle kabul edildi

Daha önce, WindowStyle yalnızca olduğu zaman UseShellExecute onurlandırıldı true. Bu değişiklik, olduğunda UseShellExecute bile yerine WindowStyle getirilirfalse.

Önceki davranış

Bu değişiklik öncesinde, aşağıdaki kod işlemi belirtilmemiş gibi WindowStyle başlattı çünkü UseShellExecute = false. Yani, pencere görünürdü, gizlenmedi.

using System.Diagnostics;

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

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

Yeni davranış

.NET 8'den başlayarak, WindowStyle ile UseShellExecute = falsebaşlatılan işlemler için bile kabul edilir.

Önceki davranış bölümündeki kod, pencere gizli olarak işlemi başlatır.

Sürüm kullanıma sunulmuştur

.NET 8 Önizleme 6

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Bazı senaryolar, oluşturulan işlemin penceresinin stilini değiştirmeyi gerektirir (özellikle bunu gizlemek için).

Bu değişiklik, düzgün desteklenmediğinde bile belirtilen WindowStyle kodu etkiler. Örneğin WPF'nin olay tetikleme sırası artık değiştiriliyor. Hataya neden olan değişikliği azaltmak için içinde ProcessStartInfobelirtmeyinWindowStyle.

Etkilenen API’ler