PeekConsoleInput 函数

从指定的控制台输入缓冲区读取数据,而不将其从缓冲区中删除。

语法

BOOL WINAPI PeekConsoleInput(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead
);

参数

hConsoleInput [in]
控制台输入缓冲区的句柄。 该句柄必须具有 GENERIC_READ 访问权限。 有关详细信息,请参阅控制台缓冲区安全性和访问权限

lpBuffer [out]
指针 – 指向接收输入缓冲区数据的 INPUT_RECORD 结构数组。

nLength [in]
lpBuffer 参数指向的数组大小(以数组元素表示)。

lpNumberOfEventsRead [out]
指针 – 指向接收所读取输入记录数量的变量。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError

备注

如果请求的记录数超过缓冲区中可用的记录数,则读取可用的记录数。 如果没有数据可用,则函数立即返回。

此函数使用控制台当前代码页中的 Unicode 字符或 8 位字符。 控制台的代码页最初默认为系统的 OEM 代码页。 若要更改控制台的代码页,请使用 SetConsoleCPSetConsoleOutputCP 函数。 旧版使用者也可以使用 chcp 或 mode con cp select= 命令,但不建议将其用于新开发

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
Header ConsoleApi.h (via WinCon.h, include Windows.h)
Kernel32.lib
DLL Kernel32.dll
Unicode 和 ANSI 名称 PeekConsoleInputW (Unicode) 和 PeekConsoleInputA (ANSI)

另请参阅

控制台函数

ReadConsoleInput

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput

INPUT_RECORD