気軽に遊べるミニゲームを制作しています

ブラウザゲームまとめ

【WPF道場】c#を使って他のアプリを起動・終了後に処理を行う

WPF

System.Diagnostics.Processクラスを使用して、他のアプリを起動したり、終了後に処理を実行したりできます。

他のアプリを起動する

まずは、テキストボックスとボタンを配置したフォームを作成します。

テキストボックスの名前は以下の通りです。

Process.Startを使って、アプリを起動させます。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process.Start(PathTxt.Text);
        }

テキストボックスにメモ帳のフルパスを入力して、起動してみます。

ボタンを押すと、メモ帳が起動されました。

アプリが終了したときに、処理を実行する

終了を待つには、ProcessクラスのWaitForExitを使用します。

今回は、メモ帳を終了したときにテキストボックスの記載を変更するコードにしてみました。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo.FileName = PathTxt.Text;

            process.Start();
            process.WaitForExit();

            PathTxt.Text = "アプリを終了しました。";

        }

メモ帳を閉じると、テキストボックスが変更されます。

起動したアプリを終了したとき、WPFアプリごと終了したいとき

this.Close();でアプリごと終了できます。

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            System.Diagnostics.Process process = new System.Diagnostics.Process();
            process.StartInfo.FileName = PathTxt.Text;

            process.Start();
            process.WaitForExit();

            this.Close();
        }

公式リファレンス:Process クラス (System.Diagnostics) | Microsoft Learn

コメント

タイトルとURLをコピーしました