防止程序重复运行代码。
程序代码:
;写程序时可能用到,特别是写破坏性的程序时。 ;参考:百度 ;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