词条 | ReadConsole |
释义 | 函数功能该函数用于从控制台缓冲区中读取输入字符,同时并将这些数据移出该缓冲区 函数原型BOOL WINAPI ReadConsole( __in HANDLE hConsoleInput, __out LPVOID lpBuffer, __in DWORD nNumberOfCharsToRead, __out LPDWORD lpNumberOfCharsRead, __in_opt LPVOID pInputControl ); 参数hConsoleInput 控制台屏幕缓冲区的句柄。该句柄必须具有的GENERIC_READ的访问权限。 lpBuffer 从控制台输入缓冲区读取接收的数据的缓冲区的指针。 如果缓冲区是从进程的64kb堆里分配.缓冲区的最大大小将取决于堆的使用。 nNumberOfCharsToRead 要读取的字符数。 lpNumberOfCharsRead 指向接收的实际读取的字符数的变量的指针。 pInputControl 指向 CONSOLE_ READCONSOLE_CONIROL 结构以指定读取操作结束的单个控制符.此参数可以为空. 返回值如果函数成功,则返回值为非零值。 如果该函数失败,则返回值为零。要获取错误信息,请调用GetLastError . 备注ReadConsole函数用于从控制台输入缓冲区中读取键盘输入。它的使用与ReadFile函数十分相似,只是它既能读取Unicode(宽字符),又能读取ANSI模式的字符。为了获得一个应用程序来维护单独的一套输入源,在上述的两种模式中,应该宁愿选择使用ReadConsole函数而不采取ReadFIle函数,尽管ReadConsole函数只能用作控制台输入缓冲区句柄。ReadFile函数则能用于其他的句柄(例如文件或者管线),如果使用一个被重新定向为其他的句柄而不是控制台的标准句柄,ReadConsol函数将执行失败。 所有能影响ReadFile函数执行的输入模式无一例外地都将同样影响ReadConsole函数和SetConsoleMode函数。 如果输入缓冲区中包含了除键盘输入事件意外的其他输入事件(例如鼠标事件或者窗口大小重置事件),则这些事件将会被丢弃。这些事件只能被ReadConsoleInput函数所读取。 在Windows NT中,该函数使用了从控制台当前代码页中得到的Unicode或者8位码,控制台当前代码页缺省初始化为系统的OEM代码页。如果想要改变控制台代码页,可以调用SetConsoleCP函数和SetConsoleOutputCP函数,或者也可以使用chcp(修改或显示控制台当前代码页)或con cp select=commands模式。 速查Windows NT:3.1以及以上版本;Windows:95及以上版本;Windows CE:不支持 头文件:wincon.h;库文件:kernel32.dll Unicode:在Windows NT 中通过Unicode或者ANSI版本实现 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。