📄 使用mutex防止程序运行两次 .txt
字号:
使用Mutex防止程序运行两次
作者:MaxMan 于2007-12-16上传
--------------------------------------------------------------------------------
By MaxMan
很多时候,我们不希望自己的程序被运行两次,这样的行为称为“互斥”,下面就介绍一种实现互斥的简单方法。程序通过 CreateMutex 函数来创建一个互斥量,具体的方法可以想象为在留言板写上一段话,每次运行的时候都到留言板上找有没有这样的留言,如果有表明已经运行,否则就是还没有运行。
;#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("本程序已经运行!"),CTXT("出错了"),MB_ICONWARNING
jmp GoEnd
.ENDIF
;暂停显示,回车键关闭
invoke StdIn,addr szbuffer,sizeof szbuffer
invoke ReleaseMutex,hMutex
GoEnd:
invoke ExitProcess,0
end START
--------------------------------------------------------------------------------
欢迎访问AoGo汇编小站:http://www.aogosoft.com 下一篇>>>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -