用这个
If App.PrevInstance Then
    msgbox "现在已经有一个实例在运行了"
    '当然这样的话你就可以做你想做的事情了
    '如果你想把哪个已运行的窗体激活,可以用SetFocus api函数  
End If

解决方案 »

  1.   

    也可以在注册表中写一个标识的值,比如,初始为0(表示未运行),运行实现检测此值,如果是0就将其改为1,并运行后面的代码;如果为1就退出程序,并且不改变此值;正常退出程序时将此值改为为0。在c++ bulider中曾经这样用过,很好使。
    注册表中的初值可以在打包程序中建立,也可以在第一次运行时生成。
      

  2.   

    TO kangyp(小猪笨笨)
    如果非法退出程序后,岂不是完蛋了????
      

  3.   

    下面一段代码给你参考,
    我这样用,OK!
    ^_^Private Const STR_WINDOW_NAME = "My Project"
    Private Const SW_RESTORE = 9Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As LongPrivate Sub Form_Load()Dim lHandle As Long
    lHandle = FindWindow(vbNullString, STR_WINDOW_NAME)
    If (lHandle <> 0) Then
        ShowWindow lHandle, SW_RESTORE
        lHandle = SetForegroundWindow(lHandle)
        End
    End IfEnd Sub
      

  4.   

    其实这个方法就很不错了
    简单明了,而且实用
    If App.PrevInstance Then
        msgbox "现在已经有一个实例在运行了"
        '当然这样的话你就可以做你想做的事情了
        '如果你想把哪个已运行的窗体激活,可以用SetFocus api函数  
    End If
      

  5.   

    Dim lHandle As Long
                lHandle = FindWindow(vbNullString, STR_WINDOW_NAME)
                If (lHandle <> 0) Then
                    ShowWindow lHandle, SW_RESTORE
                    lHandle = SetForegroundWindow(lHandle)
                    Call BUTN_Enabled(True)
                    Exit Sub
                End If
                
                tbToolBar.Buttons(23).Enabled = False
                str = App.path
                If Right(str, 1) <> "\" Then
                str = str + "\" + "Help.exe"
                End If
                If Dir$(str) = Empty Then
                    msgInfo = MsgBox("请注意!目标文件不存在或被损坏,程序不能正常运行!!!", 64)
                Else
                    Shell str, vbNormalFocus
                End If
      

  6.   

    请注意! STR_WINDOW_NAME 是你要起动的程序的标题 BUTN_Enabled(True) 是我自己定义的不个函数,与本例无关 tbToolBar.Buttons(23).Enabled = False 是关于其它工具的控制