Функция
GetConsoleModeФункция
GetConsoleMode извлекает данные о текущем режиме ввода данных в буфер ввода консоли или текущем режиме вывода экранного буфера консоли.Синтаксис
GetConsoleMode(
); |
Параметры
hConsoleHandle
[in] Дескриптор консольного буфера ввода или экранного буфера консоли. Дескриптор должен иметь право доступа
GENERIC_READ. Для получения дополнительной информации, см. статью Защита буфера и права доступа в консоли.[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 |
Нет |
Замечания по платформе |
Не имеется |