?? 使用mutex防止程序運(yùn)行兩次 .txt
字號(hào):
使用Mutex防止程序運(yùn)行兩次
作者:MaxMan 于2007-12-16上傳
--------------------------------------------------------------------------------
By MaxMan
很多時(shí)候,我們不希望自己的程序被運(yùn)行兩次,這樣的行為稱為“互斥”,下面就介紹一種實(shí)現(xiàn)互斥的簡(jiǎn)單方法。程序通過(guò) CreateMutex 函數(shù)來(lái)創(chuàng)建一個(gè)互斥量,具體的方法可以想象為在留言板寫(xiě)上一段話,每次運(yùn)行的時(shí)候都到留言板上找有沒(méi)有這樣的留言,如果有表明已經(jīng)運(yùn)行,否則就是還沒(méi)有運(yùn)行。
;#Mode=CON
.386
.model flat, stdcall
option casemap :none
include windows.inc
include user32.inc
include kernel32.inc
include masm32.inc
includelib user32.lib
includelib kernel32.lib
includelib masm32.lib
include macro.asm
.data
szMutex db "Only One",0
.data?
szbuffer db 100 dup(?)
hMutex dd ?
.CODE
START:
invoke CreateMutex,NULL,FALSE,addr szMutex
mov hMutex,eax
invoke GetLastError
.IF eax == ERROR_ALREADY_EXISTS
invoke MessageBox,NULL,CTXT("本程序已經(jīng)運(yùn)行!"),CTXT("出錯(cuò)了"),MB_ICONWARNING
jmp GoEnd
.ENDIF
;暫停顯示,回車鍵關(guān)閉
invoke StdIn,addr szbuffer,sizeof szbuffer
invoke ReleaseMutex,hMutex
GoEnd:
invoke ExitProcess,0
end START
--------------------------------------------------------------------------------
歡迎訪問(wèn)AoGo匯編小站:http://www.aogosoft.com 下一篇>>>
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -