|
程序只运行一个实例,并且把前一个激活
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
来源:www.upschool.com.cn 作者:未知 关键字:VB,只允许运行一个实例,激活,
发表日期:2007-2-9 16:21:34 网页显示有限 阅读全文请下载本文完整版WORD文档
上一篇:VB断开网络连接!API源码 下一篇:已知外部程序的hWnd,获取它的完整路径
|