Клава!

Тема в разделе "WASM.WIN32", создана пользователем tahir, 22 мар 2009.

  1. tahir

    tahir New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    22
    Всем Привет!
    Я только начинаю писать под win32, вот пишу консольное приложение,
    как сделать чтобы окно не закрывалось пока пользователь не нажмет любую клавишу?
    Пробывал GetAsyncKeyState, GetKeyState,
    Помогите найти решение!
    ЗБ СПАСИБО
     
  2. Rodin

    Rodin New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2007
    Сообщения:
    125
    getchar() :)
     
  3. tahir

    tahir New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    22
    Спасибо конечно
    а на ассемблере этого не нашел в import32.lib
     
  4. Wisder

    Wisder New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    30
    ReadConsoleInput
     
  5. tahir

    tahir New Member

    Публикаций:
    0
    Регистрация:
    5 янв 2009
    Сообщения:
    22
    А как написать это на асме привиди пример, у меня не получается, нужно описывать данные INPUT_RECORD?
     
  6. Wisder

    Wisder New Member

    Публикаций:
    0
    Регистрация:
    7 авг 2007
    Сообщения:
    30
    Код (Text):
    1. .386
    2. .model flat,stdcall
    3. option casemap:none
    4. include \masm32\include\windows.inc
    5. include \masm32\include\kernel32.inc
    6. includelib \masm32\lib\kernel32.lib
    7. .data
    8. hConsIn        dd ?
    9. Result         dd ?
    10. recordstr INPUT_RECORD <>
    11. .code
    12. Start:
    13.     invoke GetStdHandle,STD_INPUT_HANDLE
    14.     mov hConsIn,eax
    15. res:
    16.     invoke ReadConsoleInput,hConsIn,addr recordstr,1,addr Result
    17.     cmp recordstr.EventType,1h ;нажата клавиша клавиатуры?
    18.     jne res
    19.     cmp recordstr.KeyEvent.wVirtualScanCode,1bh ;была нажата кнопка Esc?
    20.     jne res ; если условия выполнились выходим
    21.     invoke ExitProcess,0
    22. end Start