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

📄 mutex.asm

📁 windows下汇编语言 学习汇编语言好助手
💻 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 + -