(仅供参考) 
Option Explicit Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
  Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  Private Declare Function IsIconic Lib "user32" (ByVal hwnd As Long) As Long
  Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
  Const SW_RESTORE = 9
  Private Const OPEN_APPLICATION = 0 Private Const SINGLE_INSTANCE_OPEN = 1
  Sub Main() Dim MultiInstResult As Integer
  MultiInstResult = MultiInst
  If MultiInstResult = OPEN_APPLICATION Then      Form1.Show   ElseIf MultiInstResult = SINGLE_INSTANCE_OPEN Then     End End If End Sub
  Private Function MultiInst() As Integer
  Dim hwndFound As Long    Dim strWindowName       
  strWindowName = App.Title App.Title = "temp title"   hwndFound = FindWindow(vbNullString, strWindowName)
  If hwndFound Then      MultiInst = SINGLE_INSTANCE_OPEN      MsgBox "A instance of the application is already open." & vbCrLf & vbCrLf & "Only one open instance allowed.", vbOKOnly + vbExclamation, "App Name"
       If IsIconic(hwndFound) Then           ShowWindow hwndFound, SW_RESTORE           SetForegroundWindow hwndFound      Else           SetForegroundWindow hwndFound     End If ElseIf hwndFound = 0 Then     App.Title = strWindowName     MultiInst = OPEN_APPLICATION End If End Function
   
 
  |