Функция GetConsoleMode


Функция GetConsoleMode извлекает данные о текущем режиме ввода данных в буфер ввода консоли или текущем режиме вывода экранного буфера консоли.

Синтаксис

BOOL GetConsoleMode(

HANDLE hConsoleHandle, // дескриптор консольного ввода или
                      
// экранного буфера
LPDWORD
lpMode         // флажки текущего режима

);

Параметры

hConsoleHandle

[in] Дескриптор консольного буфера ввода или экранного буфера консоли. Дескриптор должен иметь право доступа GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.

lpMode

[out] Указатель на 32-разрядную переменную, которая получает текущий режим определяемого буфера.

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

Значение

Предназначение

ENABLE_LINE_INPUT

Функции ReadFile или ReadConsole возвращают значение только тогда, когда читается символ возврата каретки. Если этот режим заблокирован, функции возвращают значения тогда, когда становятся доступными один или несколько символов. 

ENABLE_ECHO_INPUT

Символы, прочитанные функцией ReadFile или ReadConsole, записываются в активный экранный буфер, поскольку они читаются. Этот режим может быть использован только в том случае, если также разрешен режим ENABLE_LINE_INPUT

ENABLE_PROCESSED_INPUT

Сигнал CTRL+C обрабатывается системой и не помещается в буфере ввода. Если буфер ввода читается функцией ReadFile или ReadConsole, другие управляющие клавиши обрабатываются системой и не возвращаются в буфер в присутствии ReadConsole или ReadFile. Если к тому же включен режим ENABLE_LINE_INPUT, возврат на один символ, перевод каретки и символы перевода строки обрабатываются системой. 

ENABLE_WINDOW_INPUT

Пользователь воздействует тогда, когда изменяет размер экранного буфера консоли, чтобы сделать запись в буфере ввода консоли. Информация об этих событий может читаться из буфера ввода прикладными программами, используя функцию ReadConsoleInput, но не теми, которые используют функции ReadFile или ReadConsole. 

ENABLE_MOUSE_INPUT

Если курсор мыши находится в пределах границ консольного окна и окно имеет фокус клавиатуры, события мыши, созданные её перемещением и нажатиями кнопок помещаются в буфере ввода. Эти события не учитываются функцией ReadFile или ReadConsole даже тогда, когда этот режим включен. 

 

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

Значение

Предназначение

ENABLE_PROCESSED_OUTPUT

Символы, записанные функцией WriteFile или WriteConsole или показанные на экране функцией ReadFile или ReadConsole подробно анализируются для выявления управляющих последовательностей ASCII и выполняется правильное действие. Возврат на один символ, табуляция, звонок, перевод каретки и символы перевода строки обрабатываются. 

ENABLE_WRAP_AT_EOL_OUTPUT

При записи при помощи функций WriteFile или WriteConsole или отображении на экране при помощи функций ReadFile или ReadConsole, курсор перемещается в начало следующей строки тогда, когда он достигает конца текущей строки. Это заставляет строки, отображенные в консольном окне прокручиваться вверх автоматически, когда курсор продвигается вперед за пределы последней строки в окне. Это также заставляет содержание экранного буфера консоли прокручиваться вверх (отбрасывание верхней строки экранного буфера консоли), когда курсор продвигается вперед за пределы последней строки в экранном буфере консоли. Если этот режим заблокирован, последний символ в строке записывается поверх любыми последующего символа.

Возвращаемые значения

Если функция завершается успешно, величина возвращаемого значения - не ноль.

Если функция завершается с ошибкой, величина возвращаемого значения - ноль. Чтобы получать расширенные данные об ошибках, вызовите функцию GetLastError.

Замечания

Консоль состоит из буфера ввода и одного или нескольких экранных буферов. Режим консольного буфера обуславливает, как консоль ведет себя в ходе операции ввода или вывода данных (I/O). Один набор флажковых констант используется при обработке вводимых данных, а другой набор используется при обработке экранного буфера (вывод данных). Установка режимов вывода одного экранного буфера не затрагивает режимы вывода других экранных буферов.

Режимы ENABLE_LINE_INPUT и ENABLE_ECHO_INPUT воздействуют только на процессы, которые используют функции ReadFile или ReadConsole, чтобы читать из буфера ввода консоли. Точно так же режим ENABLE_PROCESSED_INPUT главным образом воздействует на функции ReadFile и ReadConsole пользователей, за исключением того, что он к тому же выясняет, записан ли ввод сигнала CTRL+C в буфере ввода (чтобы он был прочитан функцией ReadConsoleInput) или он передан функции, которую определило приложение.

Режимы ENABLE_WINDOW_INPUT и ENABLE_MOUSE_INPUT выясняют, воздействует ли пользователь включая изменение размеров окна, и фиксируются ли действия мыши в буфере ввода или не учитываются. Эти события могут читаться функцией ReadConsoleInput, но они всегда фильтруются функциями ReadFile и ReadConsole.

режимы ENABLE_PROCESSED_OUTPUT и ENABLE_WRAP_AT_EOL_OUTPUT воздействуют только на процессы, которые используют функции ReadFile или ReadConsole и WriteFile или WriteConsole.

Чтобы изменить режимы ввода - вывода (I/O) консоли, вызовите функцию SetConsoleMode.

Код примера

Пример смотрите в статье Чтение событий буфера вводимых данных.

Смотри также

Обзор консольных приложений, Функции консоли, ReadConsole, ReadConsoleInput, ReadFile, SetConsoleMode, WriteConsole, WriteFile

Размещение и совместимость GetConsoleMode

Windows NET Server

Да

Windows XP Да

Windows 2000

Да

Windows NT

Версия 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Wincon.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz