single.php

C# WinUI3でProcess.StartでPythonコードを実行する際にプロンプト画面を表示しない方法

C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトの、Process.StartでPythonコードをバックグラウンドで実行する際に[コマンド プロンプト]画面を表示しない方法です。

[CreateNoWindow]を使う

外部プログラムを操作は[System.Diagnostics]アセンブリの[Process]クラスを使ってバックグラウンドで実行が可能です。

[Process]には[FileName](実行ファイル)や[Argument](引数)などのプロパティがあります。

[CreateNoWindow]プロパティを[True]にすると実行時にプロンプト画面が非表示になります。

また、[CreateNoWindow]プロパティの既定値は[False]なので、実行すると一瞬黒いプロンプト画面が表示されます。

具体的にプロンプト画面を表示させない場合は、こんな感じで行います。

try
{
  System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
  {
    FileName = exe,
    Arguments = args,
    CreateNoWindow = true,
    UseShellExecute = false
  });
  return true;
}
catch (Exception ex)
{
  ShowErrorBalloon($"プロセス起動エラー: {ex.Message}");
  return false;
}

まとめ

今回は、短い記事ですがWinUI3プロジェクトで外部プログラムを実行した際にプロンプト画面を非表示にする方法について紹介しました。

[Process]で外部アプリを実行する際に[CreateNoWindow]プロパティを有効にしておくと、プロセス開始時にプロンプト画面(黒い画面)を表示しない状態で実行が可能です。

WinUI 3 アプリで外部アプリを開始した際に一瞬表示される黒い画面を非表示にしたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です