Share via


ReadConsoleInputEx 函式

從主控台輸入緩衝區讀取資料,並以可設定的行為從緩衝區中移除資料。

注意 此函式沒有相關聯的匯入連結庫。 此函式可作為 Kernel32.dll 中名為 ReadConsoleInputExAReadConsoleInputExW 的資源。 您必須使用 LoadLibraryGetProcAddress 函式,動態連結至 Kernel32.dll。

語法

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

參數

hConsoleInput [in]
主控台輸入緩衝區的句柄。 句柄必須具有 GENERIC_READ 訪問許可權。 如需詳細資訊,請參閱主控台緩衝區安全性和存取權限

lpBuffer [out]
接收輸入緩衝區數據之INPUT_RECORD結構的陣列指標。

nLength [in]
陣列元素中的 lpBuffer 參數所指向的數位大小。

lpNumberOfEventsRead [out]
接收讀取輸入記錄數目之變數的指標。

wFlags [in]

一組旗標 (ORed) 可指定主控台的讀取行為。

意義
CONSOLE_READ_NOREMOVE0x0001 將事件保留在輸入緩衝區中(如 中所示 PeekConsoleInput
CONSOLE_READ_NOWAIT0x0002 即使輸入緩衝區中沒有任何事件,仍會立即傳回 。

傳回值

如果函式成功,則傳回非零的值。

如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

此函式是 的 ReadConsoleInput可設定版本。 如需其他作業詳細數據ReadConsoleInput請參閱備註。

使用旗標CONSOLE_READ_NOMOVE | CONSOLE_READ_NOWAIT話相當於 ReadConsoleInputEx 呼叫 PeekConsoleInput

此函式不存在於 Windows 控制台標頭中。 若要從 C 或 C++ 應用程式取得其存取權,請包含下列宣告,並如上所述動態連結 kernel32.dll。

#ifndef CONSOLE_READ_NOREMOVE
#define CONSOLE_READ_NOREMOVE   0x0001
#endif

#ifndef CONSOLE_READ_NOWAIT
#define CONSOLE_READ_NOWAIT     0x0002
#endif

BOOL
WINAPI
ReadConsoleInputExA(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

BOOL
WINAPI
ReadConsoleInputExW(
    _In_ HANDLE hConsoleInput,
    _Out_writes_(nLength) PINPUT_RECORD lpBuffer,
    _In_ DWORD nLength,
    _Out_ LPDWORD lpNumberOfEventsRead,
    _In_ USHORT wFlags);

需求

   
最低支援的用戶端 Windows 7 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
頁首 無,請參閱備註
程式庫 無,請參閱備註
DLL Kernel32.dll
Unicode 和 ANSI 名稱 ReadConsoleInputExW (Unicode) 和 ReadConsoleInputExA (ANSI)

另請參閱

主控台函式

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

低階主控台輸入函式

ReadConsoleInput

PeekConsoleInput

ReadConsole

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput