学习笔记 关于控制台文本窗口的一些知识
1.GetStdHandle函数
原型为:
HANDLE WINAPI GetStdHandle(In DWORD nStdHandle);
功能:
获取指定标准设备的句柄(标准输入,标准输出或标准错误)
参数:
nStdHandle //标准设备。此参数可以是以下值之一。
STD_INPUT_HANDLE(DWORD)-10 //标准输入设备。最初,这是控制台输入缓冲区
STD_OUTPUT_HANDLE(DWORD)-11 //标准输出设备。最初,这是活动的控制台屏幕缓冲区
STD_ERROR_HANDLE(DWORD)-12 //标准错误设备。最初,这是活动的控制台屏幕缓冲区
返回值:
如果函数成功,则返回值是指定设备的句柄,或者是先前调用SetStdHandle设置的重定向句柄。该句柄具有GENERIC_READ和GENERIC_WRITE访问权限,除非应用程序使用SetStdHandle设置具有较少访问权限的标准句柄。
如果函数失败,则返回值为INVALID_HANDLE_VALUE。要获取扩展错误信息,请调用GetLastError。
如果应用程序没有关联的标准句柄,例如在交互式桌面上运行的服务,并且未重定向它们,则返回值为NULL。
2.“句柄”则是Windows最常用的一个概念。它通常用来标识Windows资源(如菜单、 图标、窗口等)和设备等对象。虽然可以把句柄理解为是一个指针变量类型,但它不是对象所在的地址指针,而是作为Windows系统内部表的索引值来使用 的。调用相关文本界面控制的API函数。这些函数可分为三类。一是用于控制台窗口操作的函数(包括窗口的缓冲区大小、窗口前景字符和背景颜色、窗口标题、大小和位置等);二是用于控制台输入输出的函数(包括字符属性操作函数);其他的函数并为最后一类。通过调用CloseHandle函数来关闭输入输出句柄。
3.常用的控制台窗口操作的API函数
获取控制台窗口信息 :
GetConsoleScreenBufferInfo();
获取控制台窗口标题 :
GetConsoleTitle();
更改指定缓冲区大小 :SetConsoleScreenBufferSize();
设置控制台窗口标题 :
SetConsoleTitle();
设置控制台窗口信息 :SetConsoleWindowInfo();