ReadConsole

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版本實現

相關詞條

相關搜尋

熱門詞條

聯絡我們