📄 mutex.asm
字号:
;********************************
;Mutex.asm *
;功能:使用互斥量确保系统中 *
; 只有进程的一个拷贝在运行 *
;********************************
.386p
.model flat,stdcall
;外部过程声明
extrn CreateMutexA:proc
extrn GetLastError:proc
extrn CloseHandle:proc
extrn MessageBoxA:proc
extrn ExitProcess:proc
;常量定义
NULL equ 0
MB_OK equ 0
TRUE equ 1
FALSE equ 0
ERROR_ALREADY_EXISTS equ 183
.data
Caption db 'Mutex',0
Text db 'OK',0
ExistText db '已有一个本程序的实例在运行!',0
Mutex db 'Mutex Object',0
MutexHandle dd ?
.code
main:
call CreateMutexA,NULL,TRUE,offset Mutex ;建立互斥对象
mov [MutexHandle],eax
call GetLastError
cmp eax,ERROR_ALREADY_EXISTS ;已存在?
jz MutexExist
call MessageBoxA,NULL,offset Text,offset Caption,MB_OK
call CloseHandle,[MutexHandle]
call ExitProcess,0
MutexExist:
call MessageBoxA,NULL,offset ExistText,offset Caption,MB_OK
call CloseHandle,[MutexHandle]
call ExitProcess,0
end main
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -