Function PrevInstance() As Boolean
Try
Dim PROC As Process
Dim intProCount As Integer = 0
PROC = Diagnostics.Process.GetCurrentProcess
If UBound(Diagnostics.Process.GetProcessesByName(PROC.ProcessName)) > 0 Then
Dim Processes As New Management.ManagementObjectSearcher("SELECT * FROM Win32_Process WHERE Name = '" & PROC.MainModule.ModuleName & "' ")
Dim Process As Management.ManagementObject
For Each Process In Processes.Get()
Dim OwnerInfo(1) As String
Process.InvokeMethod("GetOwner", OwnerInfo)
If OwnerInfo(0) = System.Environment.UserName Then
intProCount = intProCount + 1
If intProCount > 1 Then
MessageBox.Show("该用户下的该进程已经启动。")
Return True
End If
End If
Next
Return False
Else
Return False
End If
Catch ex As Exception
MessageBox.Show(ex.ToString)
Return True
End Try
End Function