Поделиться через


Функция WriteConsoleInput

Важно!

В этом документе описаны функции платформы консоли, которые больше не являются частью стратегии развития экосистемы. Мы не рекомендуем использовать это содержимое в новых продуктах, но мы будем продолжать поддерживать существующие использования для неопределенного будущего. Наше предпочтительное современное решение ориентировано на последовательности виртуальных терминалов для обеспечения максимальной совместимости в кроссплатформенных сценариях. Дополнительные сведения об этом решении по проектированию можно найти в классической консоли и в документе виртуального терминала .

Записывает данные непосредственно в буфер входных данных консоли.

Синтаксис

BOOL WINAPI WriteConsoleInput(
  _In_        HANDLE       hConsoleInput,
  _In_  const INPUT_RECORD *lpBuffer,
  _In_        DWORD        nLength,
  _Out_       LPDWORD      lpNumberOfEventsWritten
);

Параметры

hConsoleInput [in]
Дескриптор входного буфера консоли. У дескриптора должно быть право на доступ GENERIC_WRITE. Дополнительные сведения см. в статье Безопасность и права доступа для буфера консоли.

lpBuffer [ввод]
Указатель на массив INPUT_RECORD структур, содержащих данные, записываемые в входной буфер.

nLength [in]
Количество записей входных данных, которые необходимо записать.

lpNumberOfEventsWritten [out]
Указатель на переменную, которая получает количество записей ввода фактически записанных.

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

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

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Замечания

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

Эта функция использует либо символы Юникода, либо 8-разрядные символы из текущей кодовой страницы консоли. Кодовая страница консоли по умолчанию изначально соответствует кодовой странице OEM системы. Чтобы изменить кодовую страницу консоли, используйте функции SetConsoleCP или SetConsoleOutputCP. Пользователи прежних версий могут также использовать команды chcp или mode con cp select= (но это не рекомендуется для новой разработки).

Совет

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

Requirements

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхний колонтитул ConsoleApi2.h (через WinCon.h, включая Windows.h)
Библиотека Kernel32.lib
DLL-библиотеки Kernel32.dll
Имена Юникода и ANSI WriteConsoleInputW (Юникод) и WriteConsoleInputA (ANSI)

См. также

Функции консоли

INPUT_RECORD

Низкоуровневые функции ввода консоли

MapVirtualKey

PeekConsoleInput

ReadConsoleInput

SetConsoleCP

SetConsoleOutputCP

VkKeyScan