VB语言

本类阅读TOP10

·Visual Basic 安装程序的制作!!
·VB中使用EXCEL输出
·一个简单的MP3播放器
·VB程序实现WindowsXP效果的界面!!
·VB打造超酷个性化菜单(六)
·透明位图
·平铺与拉伸MDI窗口的背景图 ~!~
·对《VB程序实现WindowsXP效果的界面》一文的补遗
·从Windows资源管理器中拖动文件
·VB打造超酷个性化菜单(一)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
程序只运行一个实例,并且把前一个激活

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

(仅供参考)

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




相关文章

相关软件