« [VB.NET] 配列ソート | メイン | [ASP.NET|Access] Access に接続 »
2005年10月14日
[VB.NET] 二重起動防止
' アプリケーション固定名 Private Shared strAppConstName As String = "daSampleApp"' 二重起動を禁止するミューテックス
Private Shared mutexObject As System.Threading.Mutex' アプリケーションのメイン・エントリ・ポイントです。
'_
Shared Sub Main()' Windows 2000(NT 5.0)以降のみグローバル・ミューテックス利用可
Dim os As OperatingSystem = Environment.OSVersion
If ((os.Platform = PlatformID.Win32NT) And (os.Version.Major >= 5)) Then
strAppConstName = "Global\" + strAppConstName
End IfTry
' ミューテックスを生成する
mutexObject = New System.Threading.Mutex(False, strAppConstName)
Catch e As ApplicationException
' グローバル・ミューテックスによる多重起動禁止
MessageBox.Show("すでに起動しています。2つ同時には起動できません。", "多重起動禁止")
Return
End Try' ミューテックスを取得する
If (mutexObject.WaitOne(0, False)) Then
' アプリケーションを実行
Application.Run(New Form1)' ミューテックスを解放する
mutexObject.ReleaseMutex()
Else
' 警告を表示して終了
MessageBox.Show("すでに起動しています。2つ同時には起動できません。", "二重起動禁止")
End If' ミューテックスを破棄する
mutexObject.Close()End Sub
2005 / 10 / 14