WriteConsoleInput 函数
重要
本文档介绍控制台平台功能,该功能已不再是生态系统蓝图的一部分。 我们不建议在新产品中使用此内容,但我们未来将无限期支持现有使用。 我们的首选最新解决方案侧重于虚拟终端序列,以实现跨平台方案中的最大兼容性。 有关此设计决策的详细信息,请参阅经典控制台与虚拟终端文档。
将数据直接写入控制台输入缓冲区。
语法
BOOL WINAPI WriteConsoleInput(
_In_ HANDLE hConsoleInput,
_In_ const INPUT_RECORD *lpBuffer,
_In_ DWORD nLength,
_Out_ LPDWORD lpNumberOfEventsWritten
);
参数
hConsoleInput [in]
控制台输入缓冲区的句柄。 此句柄必须具有 GENERIC_WRITE 访问权限。 有关详细信息,请参阅控制台缓冲区安全性和访问权限。
lpBuffer [in]
指向 INPUT_RECORD 结构数组的指针,该数组包含要写入到输入缓冲区的数据。
nLength [in]
要写入的输入记录数量。
lpNumberOfEventsWritten [出]
指向变量的指针,该变量接收实际写入的输入记录数量。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
WriteConsoleInput 将输入记录置于缓冲区中任何挂起事件之后的输入缓冲区。 如果需要,输入缓冲区会动态增长,以容纳写入的事件数。
此函数使用控制台当前代码页中的 Unicode 字符或 8 位字符。 控制台的代码页最初默认为系统的 OEM 代码页。 若要更改控制台的代码页,请使用 SetConsoleCP 或 SetConsoleOutputCP 函数。 旧版使用者也可以使用 chcp 或 mode con cp select= 命令,但不建议将其用于新开发。
提示
不建议使用此 API,并且此 API 没有虚拟终端等效项。 此决策有意使 Windows 平台与其他操作系统保持一致。 此操作被视为此缓冲区的错误方式谓词。 如果使用此 API,则通过跨平台实用工具和传输(例如 SSH)进行远程处理的应用程序可能无法正常工作。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | ConsoleApi2.h (via WinCon.h, include Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |
Unicode 和 ANSI 名称 | WriteConsoleInputW (Unicode) 和 WriteConsoleInputA (ANSI) |