Впервые увидел эту программку написанную на FASM, вот решил на MASM переписать Звучит так, как будто я целый месяц лопатил. На самом деле это простейшая программа, даже программой её назвать язык не поварачивается. Несколько вызовов одной функции mciSendString Code .386 .model flat, stdcall option casemap :none
include windows.inc include user32.inc include kernel32.inc include winmm.inc includelib user32.lib includelib kernel32.lib includelib winmm.lib .data _message db 'Нужна подставка под пиво ?',0 _caption db 'Конфигурация',0 _cmd_open db 'open cdaudio',0 _cmd_dopen db 'set cdaudio door open',0 _cmd_dclose db 'set cdaudio door closed',0 _cmd_close db 'close cdaudio',0
.code start: invoke MessageBox,0,offset _message, offset _caption,MB_ICONQUESTION+MB_YESNO cmp eax,IDYES jne exit invoke mciSendString,offset _cmd_open,0,0,0 invoke mciSendString,offset _cmd_dopen,0,0,0 invoke mciSendString,offset _cmd_close,0,0,0 jmp exit1
exit: invoke mciSendString,offset _cmd_open,0,0,0 invoke mciSendString,offset _cmd_dclose,0,0,0 invoke mciSendString,offset _cmd_close,0,0,0 exit1: invoke ExitProcess,0
end start Вот такая супер программа. MB_ICONQUESTION и MB_YESNO, а также IDYES (правда IDYES не видит winAsm почему-то)- константы, находящиеся в windows.inc Остальной код очевиден я полагаю. Логика простая. Вызывается окошко с вопросом и двумя кнопками для ответа (MB_YESNO - эта константа нам в помощь) В случае положительного ответ - лоток выдвигается и программа заканчивает свою работу, иначе лоток закрывается и прога закрывается. Если доработать, то можно закрывать и открывать по нажатию на кнопку. Думаю разберётесь, если заинтересуетесь.
|