ここでは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
アプリケーションの設定で二重起動を禁止する
プロジェクトのプロパティを開いて、アプリケーションの [単一インスタンスのアプリケーションを作成する] をチェックすると二重起動を禁止することができます。
- ソリューションエクスプローラーからプロジェクトを選択して右クリックします。
- [プロパティ] を選択します。
- アプリケーションの [単一インスタンスのアプリケーションを作成する] をチェックします。
これで二重起動は禁止されますがメッセージは表示されません。
以上、VB.NETでアプリケーションの二重起動を禁止する方法について解説しました。