如果前面的程序已经打开了,那么再点击该程序的exe时, 原先的那个程序会处于被激活的状态

解决方案 »

  1.   

    Public Const M_DEF_ID  As Long = 99999999Public Function CheckAppliction(ByVal Obj As Object) As Boolean
        Dim lngHwnd As Long
        Dim lngData As Long    CheckAppliction = False    With Obj
            Call SetWindowLong(.HWnd, GWL_USERDATA, M_DEF_ID)
            
            lngHwnd = FindWindow(vbNullString, vbNullString)        Do Until lngHwnd = 0
                lngData = GetWindowLong(lngHwnd, GWL_USERDATA)
        
                If (lngData = M_DEF_ID) And (lngHwnd <> .HWnd) Then
                    
                    If IsIconic(lngHwnd) Then
                        Call ShowWindow(lngHwnd, SW_RESTORE)
                    End If
                    Call SetActiveWindow(lngHwnd)
                
                    CheckAppliction = True                Exit Do
                End If
                lngHwnd = GetWindow(lngHwnd, GW_HWNDNEXT)
            Loop
        End WithEnd FunctionPrivate Sub Form_Load()
        If g_Sys.CheckAppliction(Me) Then End
    End Sub
      

  2.   

    不行啊。.我的程序里面有很多Form的,我实际上是在main里面来判断的.
    所以不能用某个form的句柄来判断啊
      

  3.   

    If App.PrevInstance Then
         Msg = "价格举报管理系统已经运行!"
         MsgBox Msg, vbInformation, "系统提示"
         End
    End If
    是不是要这个?
      

  4.   

    If App.PrevInstance Then
         Msg = "价格举报管理系统已经运行!"
         MsgBox Msg, vbInformation, "系统提示"
         End
    End If这个只能判断是否有相同的程序在运行,我还要一个功能,就是已经运行的程序要被激活,自动跳到窗口的最前面来.如果最小化了要恢复正常
      

  5.   

    Private Sub Form_Load()
        If App.PrevInstance Then
            End
        End If
    End Sub
      

  6.   

    Private Sub Form_Load()
        If App.PrevInstance Then
            End
            AppActivate "你窗口的标题"    'AppActivate用法   AppActivate +“所要激活应用程序窗口标题”    End If
    End Sub
      

  7.   

    呵呵  那个要放在end前面   失误
    Private Sub Form_Load()
        If App.PrevInstance Then
            AppActivate "你窗口的标题"    'AppActivate用法   AppActivate +“所要激活应用程序窗口标题”
            End
        End If
    End Sub
      

  8.   

    用App.PrevInstance职能判断同一个位置同一个文件名的程序是否已运行,但同一个程序在不同位置或者不同文件名,还是会照样运行
      

  9.   

    用DDE啊。象網絡螞蟻一樣。網上有DDE的代碼,自己搜索一下。