网页功能: 加入收藏 设为首页 网站搜索  
程序只运行一个实例,并且把前一个激活
发表日期:2003-03-27作者:jennyvenus[] 出处:  

(仅供参考)

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

我来说两句】 【加入收藏】 【返加顶部】 【打印本页】 【关闭窗口
中搜索 程序只运行一个实例,并且把前一个激活
本类热点文章
  揭穿号称内存占用极低的软件的诡计
  用VB6实现真正实用的多线程处理
  读写INI文件的四个函数
  shell函数能以同步方式打开一个exe文件
  VB的API编程精粹
  TAPI笔记
  锁定计算机
  巧用API函数增强VB位操作功能
  在VB中使用API函数
  让你的文本框“聪明”一点
  关机消息的拦截
  在WIN2000下实现程序的关机
最新分类信息我要发布 
最新招聘信息

关于我们 / 合作推广 / 给我留言 / 版权举报 / 意见建议 / 广告投放  
Copyright ©2003-2019 Lihuasoft.net webmaster(at)lihuasoft.net
网站编程QQ群   京ICP备05001064号 页面生成时间:0.00427