1. 编写控制台程序,获得标准输入输出的窗口句柄

GetStdHandle

函数声明如下 :

HANDLE GetStdHandle(

DWORD nStdHandle

);

GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出 /错误的屏幕缓冲区的句柄。

其参数nStdHandle的值为下面几种类型的一种:

值 含义

STD_INPUT_HANDLE 标准输入的句柄

STD_OUTPUT_HANDLE 标准输出的句柄

STD_ERROR_HANDLE 标准错误的句柄

2. SetConsoleTextAttribute是API设置控制台字体颜色和背景色的函数。广泛应用于电脑编程

BOOL SetConsoleTextAttribute(

HANDLE hConsoleOutput,  // 使用GetStdHandle取得的句柄

WORD wAttributes        // 设置文本、背景色

);

wAttributes可以取下面的值

FOREGROUND_BLUE              Text color contains blue.

FOREGROUND_GREEN             Text color contains green.

FOREGROUND_RED               Text color contains red.

FOREGROUND_INTENSITY         Text color is intensified.

BACKGROUND_BLUE              Background color contains blue.

BACKGROUND_GREEN             Background color contains green.

BACKGROUND_RED               Background color contains red.

BACKGROUND_INTENSITY         Background color is intensified.

COMMON_LVB_LEADING_BYTE     Leading byte.

COMMON_LVB_TRAILING_BYTE     Trailing byte.

COMMON_LVB_GRID_HORIZONTAL     Top horizontal.

COMMON_LVB_GRID_LVERTICAL     Left vertical.

COMMON_LVB_GRID_RVERTICAL     Right vertical.

COMMON_LVB_REVERSE_VIDEO     Reverse foreground and background attributes.

COMMON_LVB_UNDERSCORE         Underscore.

3. CONSOLE_CURSOR_INFO用于存放控制光标信息

typedef struct _CONSOLE_CURSOR_INFO {

DWORD  dwSize;

BOOL   bVisible;

} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

dwSize:光标大小,1-100的值

bVisible:光标是否可见

4. SetConsoleCursorInfo设置光标的信息

BOOL SetConsoleCursorInfo(

HANDLE hConsoleOutput,                         // 使用GetStdHandle取得的句柄

CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo // 光标信息

);

5. _CONSOLE_SCREEN_BUFFER_INFO: contains information about a console screen buffer

typedef struct _CONSOLE_SCREEN_BUFFER_INFO {

COORD      dwSize;                 // Size, in character columns and rows, of the screen buffer.

COORD      dwCursorPosition;            // 当前光标在屏幕的位置

WORD       wAttributes;             // 控制台相当于显示屏的坐标,左上和右下的坐标

SMALL_RECT srWindow;                 // 字符背景属性,同SetConsoleTextAttribute

COORD      dwMaximumWindowSize;         // 控制台窗口的大小

} CONSOLE_SCREEN_BUFFER_INFO ;

6. GetConsoleScreenBufferInfo取得控制台屏幕信息

BOOL GetConsoleScreenBufferInfo(

HANDLE hConsoleOutput,                                // GetStdHandle取得的句柄

PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo // screen buffer information

);

7. SetConsoleCursorPosition设置光标位置

BOOL SetConsoleCursorPosition(

HANDLE hConsoleOutput,  // handle to screen buffer

COORD dwCursorPosition  // new cursor coordinates

);

8. WriteConsoleOutput直接写输入缓冲区。可以写入键盘、鼠标等任何Console能够接收的事件(Event)都可以写进去。键盘操作如果是一些可显示字符可以直接写 ASCII字符,否则的话可能要用键盘扫描码(scan code)了

BOOL WriteConsoleOutput(

HANDLE hConsoleOutput,      // handle to screen buffer

CONST CHAR_INFO *lpBuffer,  // data buffer

COORD dwBufferSize,         // size of data buffer

COORD dwBufferCoord,        // cell coordinates

PSMALL_RECT lpWriteRegion   // rectangle to write

);

9. SetConsoleTitle设置控制台的标题

BOOL SetConsoleTitle(

LPCTSTR lpConsoleTitle   // new console title

);

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/518171/viewspace-677906/,如需转载,请注明出处,否则将追究法律责任。

在linux系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄...相关推荐

  1. .NET CORE编写控制台程序应有的优雅姿势(转载)

    原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的"正确"方法,我把正确二字加上引号,因为没有绝对 ...

  2. linux ctg重装,Linux 系统中 CTG 的安装, 应用程序开发以及调试

    Linux 系统中 CTG 的安装, 应用程序开发以及调试 准备 1)CICS Transaction Gateway for Multiplatforms, CICS Transaction Gat ...

  3. 10分钟 在linux里创建.net core helloworld控制台程序

    官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 :选择和你本机适用的Linux版本,我这里用的是18.04. 第 ...

  4. ubuntu系统中用c语言编写简单程序

    目录 (一):修改参数提高下载速度 (二):c语言入门编写helloworld (三):在ubuntu系统下编写简单程序 (四):在windows系统下编写简单程序 (五):在ubuntu系统下使用m ...

  5. ubuntu系统下C语言编写简单程序

    文章目录 一.学习了解ubuntu系统下vim编辑器的基本运用. 1.如何进入vim编辑器 2.vim编辑器命令模式基本命令 3.vim编辑器编辑模式 4.vim编辑器末行模式命令 二.ubuntu系 ...

  6. linux系统怎么结束程序,如何在 Linux 系统中结束进程或是中止程序

    如何在 Linux 系统中结束结束进程或是中止程序 进程出错的时候,您可能会想要中止或是中断这个进程.本文,我们将在命令行和图形界面中探索进程或是应用程序的中断,这里我们使用 gedit 作为样例程序 ...

  7. linux 汇编 cmp,使用汇编语言编写C程序的函数

    我必须实现应该是原子操作的set_bit函数.我在linux源代码中发现了这个汇编代码. (我正在使用sparc),并希望将其更改为可在C程序中使用的函数.使用汇编语言编写C程序的函数 static ...

  8. Linux系统中使用vim编写C语言代码实现过程

    博主这里是阿里云CentOs7的系统,以下涉及到的yum软件安装命令,在其他Linux发行版上可能会有些许不同,望读者安装时注意,如出现命令无法识别请根据对应发行版自行百度. 使用Linux进行C语言 ...

  9. linux系统写一个脚本,编写一个简单的linuxshell脚本

    shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...

  10. Linux系统(Ubuntu)编写C语言程序

    1.在当前目录创建hello.c文件,命令vi hello.c(用到编辑器vim,Linux安装vim教程,参考博客Linux安装vim) 2.进入编辑模式(按下键盘"i") 3. ...

最新文章

  1. vector容器 begin()与end()函数、front()与back()的用法
  2. 使用Nginx-rtmp-module搭建hls直播
  3. Python-100 练习题 01 列表推导式
  4. Touch 方法amp;属性 映射工具
  5. 操作系统(九)进程控制
  6. VTK:vtkClipClosedSurface用法实战
  7. php openssl加密数据长度,PHP使用openssl解密数据(用mcrypt加密)
  8. 【README3】动态规划之“找零钱”说明最优子结构怎么解决
  9. go语言 格式化输出
  10. 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例
  11. 基于Cocos2d-x开发guardCarrot--4 《保卫萝卜2》主页面动画
  12. 10分钟电子邮箱,临时邮箱
  13. 如何查看电脑连接过的WiFi密码
  14. 计算机专业推荐的比赛
  15. 文件比较 java 标红_如何用java输出word里红色的字体,
  16. 医院信息系统(HIS)的“一个都不能少”!
  17. 基于css简易实现头像更换动画效果
  18. OnlyOffice Docker版搬砖心得
  19. 提取文件内容需要什么工具?
  20. 继电保护测试相关知识

热门文章

  1. Ubuntu删除用户和卸载服务命令
  2. eeglab基础学习
  3. photoshop cc 2018安装破解教程
  4. 在Win2016上安装SVNServer21步骤
  5. Oracle中的索引类型
  6. 文件描述符表,打开文件表,索引节点表
  7. 5G协议学习(38.300-总体描述)
  8. 10个精美免费PPT模板下载网站推荐
  9. Mastik:微体系结构侧信道攻击工具包
  10. 我珍藏很久的网盘资源搜索网站和下载神器