⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 使用mutex防止程序运行两次 .txt

📁 会变语言实现的一些程序
💻 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 + -