方法一:
If App.PrevInstance = True Then MsgBox "程序已经在运行中,不打开两个!", vbCritical + vbOKOnly, "友情提示"
方法二:
设计时把窗体的LinkMode设为1-Source;在窗体上添加一个PictureBox命名picDDE。(貌似文本框和标签也可以这么用,没试过)
'API函数,用于把制定窗口设为活动窗口
Private Declare Function SetActiveWindow Lib "user32" (ByVal hwnd As Long) As Long
Private Const sMsgToTop As String = "ToTop!" '自定义消息,随意改
Private Const sFormLT As String = "I AM UNIQUE" '链接主题,只要和别的程序不重名
'DDE链接, 处理信息
Private Sub Form_LinkExecute(CmdStr As String, Cancel As Integer)
Select Case CmdStr
Case "ToTop!" '我们发送的信息
'调用API把自己设为活动
SetActiveWindow Me.hwnd
End Select
Cancel = 0
End Sub
Private Sub Form_Load()
If App.PrevInstance Then
Me.LinkTopic = ""
MsgBox ("程序已运行!")
'向已存在的窗体发送信息
picDDE.LinkTopic = App.ProductName & "|" & sFormLT
picDDE.LinkMode = 2
picDDE.LinkExecute sMsgToTop
End
Else
Me.LinkTopic = sFormLT
End If
End Sub