日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

怎样让VB6程序只能运行一次

發(fā)布時(shí)間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎样让VB6程序只能运行一次 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
方法一:利用PrevInstance屬性 If App.PrevInstance Then Call MsgBox("對(duì)不起本程序已在運(yùn)行中, 不得重復(fù)加載!!", vbCritical) End End If 優(yōu)點(diǎn):簡(jiǎn)單方便、 缺點(diǎn):針對(duì)性不強(qiáng)、隨意復(fù)制一份即可再次運(yùn)行、


方法二:創(chuàng)建互斥體(個(gè)人比較喜歡) Private Declare Function CreateMutex Lib "kernel32" Alias "CreateMutexA" (ByVal lpMutexAttributes As Long, ByVal bInitialOwner As Long, ByVal lpName As String) As Long Private Declare Function ReleaseMutex Lib "kernel32" (ByVal hMutex As Long) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long Dim ret As Long Private Sub Form_Load() ret = CreateMutex(ByVal 0, 1, "FORM1") '這里改成程序的標(biāo)題 If Err.LastDllError = 183 Then ReleaseMutex ret CloseHandle ret MsgBox "程序只能運(yùn)行一次!", vbCritical, "" End End If End Sub 優(yōu)點(diǎn):只要窗體的標(biāo)題不變,無(wú)論如何無(wú)法雙開(kāi) 缺點(diǎn):和優(yōu)點(diǎn)一樣、只要其他程序歷遍得到本窗體的句柄、然后sendmessage讓窗體的標(biāo)題(caption)改變就可以多開(kāi)


方法三:全局原子、(02.09補(bǔ)上代碼) Private Declare Function GlobalAddAtom% Lib "kernel32" Alias "GlobalAddAtomA" (ByVal AtomName As String) Private Declare Function GlobalFindAtom% Lib "kernel32" Alias "GlobalFindAtomA" (ByVal AtomName As String) Private Declare Function GlobalDeleteAtom% Lib "kernel32" (ByVal AtomName As Integer) Private Atom As Long Private Sub IsAtom() If GlobalFindAtom(App.EXEName) = 0 Then Atom = GlobalAddAtom(App.EXEName) Else unlaod Me End Sub Private Sub Form_Load() IsAtom End Sub Private Sub Form_Unload(Cancel As Integer) GlobalDeleteAtom Atom End Sub 優(yōu)點(diǎn)顯而易見(jiàn)、非常規(guī)手段絕對(duì)不可能達(dá)到多開(kāi)的目的、缺點(diǎn)么、、一旦程序被強(qiáng)制或非常規(guī)手段結(jié)束、就無(wú)法再次運(yùn)行、原因很簡(jiǎn)單、當(dāng)程序運(yùn)行時(shí)會(huì)創(chuàng)建全局原子、一般情況下在程序退出時(shí)(unload事件)會(huì)刪除全局原子、而強(qiáng)制結(jié)束程序則造成無(wú)法刪除全局原子、所以就造成了無(wú)法打開(kāi)的情況、、如果對(duì)這個(gè)情況你有好的解決方法、希望得到你的幫助、、

總結(jié)

以上是生活随笔為你收集整理的怎样让VB6程序只能运行一次的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。