• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

程序只运行一个实例,并且把前一个激活

发布: 2007-7-01 21:48 | 作者: admin | 来源: | 查看: 17次 | 进入软件测试论坛讨论

领测软件测试网

(仅供参考)

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


延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网