UseShellExecute が false の場合に ProcessStartInfo.WindowsStyle が受け入れられる
以前は、UseShellExecute が true
のときだけ WindowStyle が適用されました。 この変更では、UseShellExecute が false
のときでも WindowStyle が適用されます。
以前の動作
この変更以前、次のコードでは、UseShellExecute = false
により、WindowStyle が指定されていないようにプロセスが開始されました。 つまり、ウィンドウは非表示ではなく、表示されました。
using System.Diagnostics;
ProcessStartInfo startInfo = new()
{
FileName = @"C:\Windows\System32\notepad.exe",
UseShellExecute = false,
WindowStyle = ProcessWindowStyle.Hidden
};
var process = Process.Start(startInfo);
process!.WaitForExit();
新しい動作
.NET 8 以降、UseShellExecute = false
で始まったプロセスの場合でも WindowStyle が適用されます。
「前の動作」セクションのコードは、ウィンドウが非表示の状態でプロセスが開始されます。
導入されたバージョン
.NET 8 Preview 6
破壊的変更の種類
この変更は、動作変更です。
変更理由
一部のシナリオでは、生成されたプロセスのウィンドウのスタイルを変更する必要があります (特にそれを非表示にするために)。
推奨される操作
この変更は、適切にサポートされていない場合でも、WindowStyle を指定したコードに影響を与えます。 たとえば、WPF のイベント発生順序が変更されました。 破壊的変更を軽減するには、ProcessStartInfo に WindowStyle
を指定しないでください。
影響を受ける API
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET