我有一个单实例VB 2010应用程序,我知道如何通过StartupNextInstance应用程序事件与下一个实例运行通信。通常的处理方法是解析新实例的命令行参数,然后继续执行旧实例。
我想做的是用新的实例替换正在运行的实例。除了禁用单实例属性之外,还有什么方法可以做到这一点吗?
为应用程序定义互斥锁
Public objMutex As Mutex
Public mutexID As String = "SINGLE_INSTANCE_APP_MUTEX_YOUR_APP"
然后检查是否正在运行
objMutex = New Mutex(False, mutexID)
If objMutex.WaitOne(0, False) = False Then
' If we get here we where already running
Process.GetProcessById(oldInstancePID).Kill()
EndIf