查看: 3  |  回复: 0
  VB6 防止程序重复运行并且激活当前正在运行的程序窗口
楼主
发表于 今天 15:43

新建From1(窗体),代码:

Private Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_SYSCOMMAND = &H112
Private Const SC_RESTORE = &HF120&

Private Sub Form_Load()
    Call ActivateTheForm
End Sub

Private Sub ActivateTheForm()
    Dim Designation As String, According As String
    If App.PrevInstance Then
        Designation = Me.Caption
        Me.Caption = Designation & Space$(1)
        According = FindWindow(vbNullString, Designation)
        Call SetForegroundWindow(According)
        Call SendMessage(According, WM_SYSCOMMAND, SC_RESTORE, 0)
        End
    End If
End Sub


您需要登录后才可以回帖 登录 | 立即注册
【本版规则】请勿发表违反国家法律的内容,否则会被冻结账号和删贴。
用户名: 立即注册
密码:
2020-2025 MaNongKu.com