Sadda.ru Ironetcart Андроид Ассемблер MASM32 Linux Все статьи Table of Contents


 

API-функция PeekConsoleInput

  Макс Петров май 2013

      Аналогична функции ReadConsoleInput за тем исключением, что не синхронизирована с вызывающим ее приложением. Если ReadConsoleInput не возвращает управление до тех пор, пока консоль не получит сообщение, затем очищает входной буфер консоли, то функция PeekConsoleInput управление возвращает сразу, вне зависимости от наличия сообщений, и не удаляет сообщения из буфера.

      Таким образом, ReadConsoleInput должна применяться тогда, когда необходимо получить действие от пользователя и без такого действия дальнейшее выполнение программы не будет иметь смысла. При вызове ReadConsoleInput программа прекратит работу - будет "ждать", пока функция получит сообщение, передаст его в сегмент данных и вернет процессору адрес, на котором было прервано выполнений программы.

      Напротив, PeekConsoleInput применяется тогда, когда действий пользователя не планируется, но они возможны, такие спонтанные действия требуется учесть без прерывания выполнения программы. Поскольку PeekConsoleInput сообщения о событиях в вводном буфере после их прочтения не удаляет, это должна сделать сама программа, при помощи специальной API-функции FlushConsoleInputBuffer. Если буфер не очищать, адекватное чтение из него организовать будет сложно, так как не известно, сколько всего сообщений было и каким по счету в буфере может быть то сообщение, которое значимо для нашего алгоритма.

      Функция FlushConsoleInputBuffer определяется следующим образом:
      Function FlushConsoleInputBuffer Lib "kernel32" Alias DWORD "FlushConsoleInputBuffer" (DWORD hConsoleInput),
где hConsoleInput - хэндл потока ввода консоли.

     


Добавить комментарий

E-mail:
*


Контрольные цифры:



Ассемблер MASM32

      Простейшая программа на ассемблере (beeper)
      Переменные и типы данных ассемблера
      Регистры процессора IA32
      Консоль ввода-вывода
      API-функция CharToOem и строки ассемблера
      API-функция ReadConsoleInput
      API-функция PeekConsoleInput
      События консоли (таблица)
      Системы счисления, тэги ассемблера, перевод чисел
      Отрицательные числа
      Инкремент и декремент
      Деление (DIV, IDIV)
      VKDEBUG
      Макросы ассемблера
      Воспоминание об Альгамбре на системном динамике
      Командная строка
      Пузырьковая сортировка. Эстафета шариков
      Сортировка расческой
      Быстрая сортировка

     


© Max Petrov При использовании материалов ссылка на sadda.ru обязательна