Всем привет! Нужно чтоб выход был только после нажатия ESC, Приложение консольное компилю так tasm32 /ml win.asm tlink32 -ap win.obj .386P .MODEL FLAT, STDCALL EXTERN GetStdHandleA:Near EXTERN GetCommandLineA:NEAR EXTERN GetStdHandle:NEAR EXTERN WriteConsoleA:NEAR EXTERN ReadConsoleInputA:NEAR EXTERN ExitProcess:NEAR _INPUT_RECORD STRUC bKeyDown dw ? wRepeatCount dw ? wVirtualKeyCode dw ? wVirtualScanCode dw ? uChar dw ? ;dw или db ? ControlKeyState dw ? ;dw или db ? MousePosition dw ? ButtonState dw ? ControlKeyState dw ? EventFlags dw ? SHORT_X db ? SHORT_Y db ? CommandId dw ? bSetFocus dw ? ;reserv _INPUT_RECORD ENDS includelib import32.lib _DATA SEGMENT DWORD PUBLIC USE32 'DATA' PUTH DB 260 DUP (0) SIZE_PUTH DD 0 DESK DD 0 AAA1 DD 0 CONSOLE DD -11 CCC DD -10 SSK DD ? BUF DW 0 INPUT_RECORD _INPUT_RECORD <?> _DATA ENDS _TEXT SEGMENT DWORD PUBLIC USE32 'CODE' START: PUSH CONSOLE CALL GetStdHandle MOV [CONSOLE],EAX PUSH CCC CALL GetStdHandle MOV [CCC],EAX LLL1: PUSH OFFSET SSK PUSH 1 PUSH OFFSET INPUT_RECORD PUSH CCC CALL ReadConsoleInputA int 3 CMP [wVirtualScanCode],13h JNE LLL1 PUSH 0 CALL ExitProcess EXIT: RET _TEXT ENDS END START
Описание структур: Код (Text): FOCUS_EVENT_RECORD STRUCT bSetFocus DWORD ? FOCUS_EVENT_RECORD ENDS MENU_EVENT_RECORD STRUCT dwCommandId DWORD ? MENU_EVENT_RECORD ENDS COORD STRUCT x WORD ? y WORD ? COORD ENDS WINDOW_BUFFER_SIZE_RECORD STRUCT dwSize COORD <> WINDOW_BUFFER_SIZE_RECORD ENDS MOUSE_EVENT_RECORD STRUCT dwMousePosition COORD <> dwButtonState DWORD ? dwControlKeyState DWORD ? dwEventFlags DWORD ? MOUSE_EVENT_RECORD ENDS KEY_EVENT_RECORD STRUCT bKeyDown DWORD ? wRepeatCount WORD ? wVirtualKeyCode WORD ? wVirtualScanCode WORD ? UNION UnicodeChar WORD ? AsciiChar BYTE ? ENDS dwControlKeyState DWORD ? KEY_EVENT_RECORD ENDS INPUT_RECORD STRUCT EventType WORD ? UNION KeyEvent KEY_EVENT_RECORD <> MouseEvent MOUSE_EVENT_RECORD <> WindowBufferSizeEvent WINDOW_BUFFER_SIZE_RECORD <> MenuEvent MENU_EVENT_RECORD <> FocusEvent FOCUS_EVENT_RECORD <> ENDS INPUT_RECORD ENDS
EventType в структуре INPUT_RECORD в твоем случае должен быть установлен в значение: KEY_EVENT = 001.
tahir 1. Под отладчиком смотрел? 2. Вот эта строчка что означает? : CMP [wVirtualScanCode],13h ? wVirtualScanCode - член структуры? Разве это не надо указываеть?