C#/VB 起動させたアプリケーションの終了を待つ方法

プログラムから起動させたアプリケーションが終了するのを待つにはどうしたらいいですか?

ProcessクラスのExitedイベントを利用することで、終了を待つことができます。

目次

起動したプロセスの終了を待つ方法

  Windowsアプリケーションで外部アプリケーションを起動し、そのアプリケーションが終了するまで待つには、ProcessクラスのExitedイベントを使用します。

 Exitedイベントハンドラーは、起動したプロセスが終了したときに実行されるメソッドを設定しておくことで、起動したアプリケーションの終了を待つことができます。

 Processクラスを使用することで、外部アプリケーションの起動や終了を管理することができます。また、Exitedイベントハンドラーを使用することで、起動したアプリケーションの終了ステータスを取得することもできます。

using System;
using System.Diagnostics;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            // メモ帳を起動する
            Process process = Process.Start("notepad.exe");

            // メモ帳が終了するまで待つ
            process.WaitForExit();

            // 終了ステータスを表示する
            Console.WriteLine("Exit code: " + process.ExitCode);
        }
    }
}
Imports System
Imports System.Diagnostics

Module Module1

    Sub Main()
        ' メモ帳を起動する
        Dim process As Process = Process.Start("notepad.exe")

        ' メモ帳が終了するまで待つ
        process.WaitForExit()

        ' 終了ステータスを表示する
        Console.WriteLine("Exit code: " & process.ExitCode)
    End Sub

End Module

上記のサンプルでは、Process.Startメソッドを使用してメモ帳を起動します。
次に、WaitForExitメソッドを使用して、起動したメモ帳が終了するまで待ちます。最後に、ExitCodeプロパティを使用して、終了ステータスを表示しています。

リスキリングでキャリアアップしてみませんか?

リスキリング(学び直し)は、経済産業省が推奨しており、

今だけ、最大70%のキャッシュバックを受けることができます。

リスキリング 給付金が出るスクール紹介

最大70%の給付金が出るおすすめのプログラミングスクール!

国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!

興味のある方はすぐに確認しましょう。

既に起動しているアプリケーションの名称から終了を待つ方法

Process.GetProcessesByNameメソッドを使用して、プロセス名を指定してすでに起動しているプロセスを取得することもできます。

Process.GetProcessesByName(“プログラム名称”)

// プロセス名を指定して、すでに起動しているプロセスを取得する
Process[] processes = Process.GetProcessesByName("notepad");

// プロセスが見つかった場合
if (processes.Length > 0)
{
    // 最初に見つかったプロセスを取得する
    Process process = processes[0];

    // プロセスが終了するまで待つ
    process.WaitForExit();

    // 終了ステータスを表示する
    Console.WriteLine("Exit code: " + process.ExitCode);
}
Sub Main()
    ' プロセス名を指定して、すでに起動しているプロセスを取得する
    Dim processes As Process() = Process.GetProcessesByName("notepad")

    ' プロセスが見つかった場合
    If processes.Length > 0 Then
        ' 最初に見つかったプロセスを取得する
        Dim process As Process = processes(0)

        ' プロセスが終了するまで待つ
        process.WaitForExit()

        ' 終了ステータスを表示する
        Console.WriteLine("Exit code: " & process.ExitCode)
    End If
End Sub

上記のサンプルでは、Process.GetProcessesByNameメソッドを使用して、プロセス名を指定してすでに起動しているプロセスを取得し、次にWaitForExitメソッドを使用して、取得したプロセスが終了するまで待ちます。

最後に、ExitCodeプロパティを使用して、終了ステータスを表示しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次