ReadConsoleInput

【勇芳软件工作室】汉化HomePreviousNext

ReadConsoleInput函数从控制台输入缓冲区读取数据,并将其从缓冲区中删除。

BOOL ReadConsoleInput(

HANDLE 【hConsoleInput】,//控制台输入缓冲区的句柄
PINPUT_RECORD 【lpBuffer】,//读取数据缓冲区的地址
DWORD 【nLength】,//要读取的记录数
LPDWORD 【lpNumberOfEventsRead】//读取的记录数的地址
); 

参数

【hConsoleInput】

标识输入缓冲区。句柄必须具有GENERIC_READ权限。

【lpBuffer】

指向接收输入缓冲区数据的INPUT_RECORD缓冲区。

【nLength】

指定由【lpBuffer】参数指向的缓冲区的输入记录中的大小。

【lpNumberOfEventsRead】

指向接收读取的输入记录数的32位变量。

返回值

如果函数成功,返回值不为零。

如果函数失败,返回值为零。要获取扩展错误信息,请调用GetLastError.

备注

如果【nLength】参数中请求的记录数超过缓冲区中可用的记录数,则读取可用数。直到读取至少一个输入记录为止,该函数才会返回。

一个进程可以在等待功能之一中指定控制台输入缓冲区句柄,以确定何时有未读的控制台输入。当输入缓冲区不为空时,会发出控制台输入缓冲区句柄的状态。

要确定控制台输入缓冲区中未读输入记录的数量,请使用GetNumberOfConsoleInputEvents功能。要从控制台输入缓冲区读取输入记录,而不影响未读记录的数量,请使用PeekConsoleInput功能。要放弃控制台输入缓冲区中的所有未读记录,请使用FlushConsoleInputBuffer功能。

Windows NT:此函数使用控制台当前代码页中的Unicode字符或8位字符。控制台的代码页最初默认为系统的OEM代码页。要更改控制台的代码页,请使用SetConsoleCPSetConsoleOutputCP功能,或使用CHCPskmode con cp select=命令。

也可以看看

FlushConsoleInputBuffer, GetNumberOfConsoleInputEvents, INPUT_RECORD, PeekConsoleInput, ReadConsole, ReadFile, SetConsoleCP, SetConsoleOutputCP, WriteConsoleInput