会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
技术文档 > VB文档 > API函数
程序只运行一个实例,并且把前一个激活
发表日期:2003-03-27 00:00:00作者:j 出处:  

(仅供参考)

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

返回顶部】 【打印本页】 【关闭窗口

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2024 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00384