ここではVB.NETでアプリケーションの二重起動を禁止する方法について紹介します。

プロセス名を判定して二重起動をチェックする

以下はProcess.GetCurrentProcessメソッドで自分自身のプロセス名を取得して、同名のプロセスが他に存在しないかをProcess.GetProcessesByNameメソッドで確認して、二重起動をチェックする例です。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    ' 自分自身のプロセス名を取得する
    Dim myProcess As String = System.Diagnostics.Process.GetCurrentProcess().ProcessName

    ' 取得した同名のプロセスが他に存在するかを確認する
    If Diagnostics.Process.GetProcessesByName(myProcess).Length > 1 Then
        ' 存在する場合はエラーとする
        MessageBox.Show("多重起動はできません。")
        Me.Close()
    End If
End Sub


アプリケーションの設定で二重起動を禁止する

プロジェクトのプロパティを開いて、アプリケーションの [単一インスタンスのアプリケーションを作成する] をチェックすると二重起動を禁止することができます。

  1. ソリューションエクスプローラーからプロジェクトを選択して右クリックします。


  2. [プロパティ] を選択します。


  3. アプリケーションの [単一インスタンスのアプリケーションを作成する] をチェックします。


これで二重起動は禁止されますがメッセージは表示されません。


以上、VB.NETでアプリケーションの二重起動を禁止する方法について解説しました。