ReadConsoleOutputAttribute 函数

重要

本文档介绍控制台平台功能,该功能已不再是生态系统蓝图的一部分。 我们不建议在新产品中使用此内容,但我们未来将无限期支持现有使用。 我们的首选最新解决方案侧重于虚拟终端序列,以实现跨平台方案中的最大兼容性。 可以在经典控制台与虚拟终端文档中找到有关此设计决策的详细信息。

从指定位置开始,从控制台屏幕缓冲区的连续单元格复制指定数量的字符特性。

语法

BOOL WINAPI ReadConsoleOutputAttribute(
  _In_  HANDLE  hConsoleOutput,
  _Out_ LPWORD  lpAttribute,
  _In_  DWORD   nLength,
  _In_  COORD   dwReadCoord,
  _Out_ LPDWORD lpNumberOfAttrsRead
);

参数

hConsoleOutput [in]
控制台屏幕缓冲区的句柄。 该句柄必须具有 GENERIC_READ 访问权限。 有关详细信息,请参阅控制台缓冲区安全性和访问权限

lpAttribute [out]
指针 – 指向接收控制台屏幕缓冲区所使用特性的缓冲区。

有关详细信息,请参阅字符属性

nLength [in]
要从中执行读取操作的屏幕缓冲区字符单元数。 lpAttribute 参数指向的缓冲区的大小应为 nLength * sizeof(WORD)

dwReadCoord [in]
要从中执行读取操作的控制台屏幕缓冲区第一个单元格的坐标(以字符为单位)。 COORD 结构的 X 成员是列;Y 成员是行。

lpNumberOfAttrsRead [out]
指针 – 指向接收实际读取的特性数量的变量。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError

备注

如果要读取的特性数量超出了指定屏幕缓冲区行的末尾,则从下一行读取特性。 如果要读取的特性数量超出了控制台屏幕缓冲区的末尾,则最多读取至控制台屏幕缓冲区末尾的特性。

提示

不建议使用此 API,并且此 API 没有等效的虚拟终端。 此决定有意将 Windows 平台与其他操作系统保持一致,其中单个客户端应用程序应记住其自身的绘制状态以供进一步操作。 如果使用此 API,则通过跨平台实用工具和传输(例如 SSH)进行远程处理的应用程序可能无法正常工作。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
Header ConsoleApi2.h (via WinCon.h, include Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

控制台函数

COORD

低级控制台输出函数

ReadConsoleOutput

ReadConsoleOutputCharacter

WriteConsoleOutput

WriteConsoleOutputAttribute

WriteConsoleOutputCharacter