用户名: 密码: 验证码: gdcode 注册

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

时间:2007-06-14 来源: 作者: 【字体: 减小 增大点击: 收藏 | 投稿
  

OptionExplicit
PrivateDeclareFunctionShowWindowLib"user32"(ByValhwndAsLong,ByValnCmdShowAsLong)AsLong

PrivateDeclareFunctionFindWindowLib"user32"Alias"FindWindowA"(ByVallpClassNameAsString,ByVallpWindowNameAsString)AsLong

PrivateDeclareFunctionIsIconicLib"user32"(ByValhwndAsLong)AsLong

PrivateDeclareFunctionSetForegroundWindowLib"user32"(ByValhwndAsLong)AsLong

ConstSW_RESTORE=9

PrivateConstOPEN_APPLICATION=0
PrivateConstSINGLE_INSTANCE_OPEN=1

SubMain()
DimMultiInstResultAsInteger

MultiInstResult=MultiInst

IfMultiInstResult=OPEN_APPLICATIONThen
Form1.Show
ElseIfMultiInstResult=SINGLE_INSTANCE_OPENThen
End
EndIf
EndSub

PrivateFunctionMultiInst()AsInteger

DimhwndFoundAsLong
DimstrWindowName

strWindowName=App.Title
App.Title="temptitle"
hwndFound=FindWindow(vbNullString,strWindowName)

IfhwndFoundThen
MultiInst=SINGLE_INSTANCE_OPEN
MsgBox"Ainstanceoftheapplicationisalreadyopen."&vbCrLf&vbCrLf&"Onlyoneopeninstanceallowed.",vbOKOnlyvbExclamation,"AppName"

财 软联盟 fs119.net


IfIsIconic(hwndFound)Then
ShowWindowhwndFound,SW_RESTORE
SetForegroundWindowhwndFound
Else
SetForegroundWindowhwndFound
EndIf
ElseIfhwndFound=0Then
App.Title=strWindowName
MultiInst=OPEN_APPLICATION
EndIf
EndFunction
财软联盟.fs119.net


文章摘自网络,如有侵权,请与我们联系.
数据统计中!!
上一篇:循环链表以及相关操作(VB实现)
下一篇:取得TextBox、RichTextBox光标所在的行和列(支持中文)修正

精品课程推荐



用户名: 密码: 匿名? 注册