![]() |
#2
onepc2009-10-09 09:29
|

;写程序时可能用到,特别是写破坏性的程序时。
;参考:百度
;by onepc
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
;include gdi32.inc ;图形
includelib user32.lib
includelib kernel32.lib
;includelib gde32.lib
include macro.asm ;ctxt("")
.data
szMutex db 'onepc',0
.data?
hInstance dd ? ;模块句柄
hMutex dd ? ;
.const
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke CreateMutex,NULL,FALSE,addr szMutex
.if eax ;CreateMutex返回NULL的话表示创建失败
mov hMutex,eax ;指向互斥句柄
invoke GetLastError ;若有一个程序在运行那么用GetLastError得到的值会是ERROR_ALREADY_EXISTS
.if eax==ERROR_ALREADY_EXISTS
invoke MessageBox,NULL,CTXT("已有程序在运行!"),CTXT("Error"),0
invoke ReleaseMutex,hMutex
invoke ExitProcess,NULL
.endif
.else
invoke MessageBox,NULL,CTXT("创建Muter失败!"),CTXT("Error"),0
.endif
invoke MessageBox,NULL,CTXT("OK!"),CTXT("OK"),0
invoke ExitProcess,NULL
end start
;参考:百度
;by onepc
.386
.model flat,stdcall
option casemap:none
include windows.inc
include user32.inc
include kernel32.inc
;include gdi32.inc ;图形
includelib user32.lib
includelib kernel32.lib
;includelib gde32.lib
include macro.asm ;ctxt("")
.data
szMutex db 'onepc',0
.data?
hInstance dd ? ;模块句柄
hMutex dd ? ;
.const
.code
start:
invoke GetModuleHandle,NULL
mov hInstance,eax
invoke CreateMutex,NULL,FALSE,addr szMutex
.if eax ;CreateMutex返回NULL的话表示创建失败
mov hMutex,eax ;指向互斥句柄
invoke GetLastError ;若有一个程序在运行那么用GetLastError得到的值会是ERROR_ALREADY_EXISTS
.if eax==ERROR_ALREADY_EXISTS
invoke MessageBox,NULL,CTXT("已有程序在运行!"),CTXT("Error"),0
invoke ReleaseMutex,hMutex
invoke ExitProcess,NULL
.endif
.else
invoke MessageBox,NULL,CTXT("创建Muter失败!"),CTXT("Error"),0
.endif
invoke MessageBox,NULL,CTXT("OK!"),CTXT("OK"),0
invoke ExitProcess,NULL
end start