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"
IfIsIconic(hwndFound)Then
ShowWindowhwndFound,SW_RESTORE
SetForegroundWindowhwndFound
Else
SetForegroundWindowhwndFound
EndIf
ElseIfhwndFound=0Then
App.Title=strWindowName
MultiInst=OPEN_APPLICATION
EndIf
EndFunction
Google.cn搜索相关文章:
谷歌中搜索全球网 程序只运行一个实例,并且把前一个激活
百度中搜索 程序只运行一个实例,并且把前一个激活
谷歌中搜索www.fs119.net 程序只运行一个实例,并且把前一个激活
下一篇:取得TextBox、RichTextBox光标所在的行和列(支持中文)修正