[VB.NET] 使用Mutex防止程式重複啟動

  • 1104
  • 0
  • 2022-02-14

  手動開啟程式難免有時候會手殘重複點選,所以需要這個機制防呆。因為網路上看到都是用C#寫的,所以紀錄一下VB.NET版本。

  在撰寫Win Form時,C#是在Program.cs將Application.Run()包在Mutex中,VB.NET預設則是直接啟動Win Form,所以需要先調整專案屬性設定。

  1. 在[應用程式]頁面,取消勾選[啟用應用程式架構],起始物件選擇[Sub Main]。

  2. 建立新的Module.vb,加入Public Sub Main(),裡面建立Mutex方法,將準備啟動的初始Win Form包在Mutex中。

Imports System.Threading

Module AppStartup

    Public Sub main()

        Dim bln_IsNewMutex As Boolean

        Using a As Mutex = New Mutex(False, Application.ProductName, bln_IsNewMutex)

            If bln_IsNewMutex Then
                MyForm.ShowDialog()
            End If

        End Using

    End Sub

End Module

參考資料