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();
}
コメント