在linux系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄...
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系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄...相关推荐
- .NET CORE编写控制台程序应有的优雅姿势(转载)
原文地址:https://www.cnblogs.com/zuowj/p/11107243.html 本文所说的编写控制台程序应有的"正确"方法,我把正确二字加上引号,因为没有绝对 ...
- linux ctg重装,Linux 系统中 CTG 的安装, 应用程序开发以及调试
Linux 系统中 CTG 的安装, 应用程序开发以及调试 准备 1)CICS Transaction Gateway for Multiplatforms, CICS Transaction Gat ...
- 10分钟 在linux里创建.net core helloworld控制台程序
官方教程 安装linux https://www.cnblogs.com/LittleFeiHu/p/9749455.html 第一步 :选择和你本机适用的Linux版本,我这里用的是18.04. 第 ...
- ubuntu系统中用c语言编写简单程序
目录 (一):修改参数提高下载速度 (二):c语言入门编写helloworld (三):在ubuntu系统下编写简单程序 (四):在windows系统下编写简单程序 (五):在ubuntu系统下使用m ...
- ubuntu系统下C语言编写简单程序
文章目录 一.学习了解ubuntu系统下vim编辑器的基本运用. 1.如何进入vim编辑器 2.vim编辑器命令模式基本命令 3.vim编辑器编辑模式 4.vim编辑器末行模式命令 二.ubuntu系 ...
- linux系统怎么结束程序,如何在 Linux 系统中结束进程或是中止程序
如何在 Linux 系统中结束结束进程或是中止程序 进程出错的时候,您可能会想要中止或是中断这个进程.本文,我们将在命令行和图形界面中探索进程或是应用程序的中断,这里我们使用 gedit 作为样例程序 ...
- linux 汇编 cmp,使用汇编语言编写C程序的函数
我必须实现应该是原子操作的set_bit函数.我在linux源代码中发现了这个汇编代码. (我正在使用sparc),并希望将其更改为可在C程序中使用的函数.使用汇编语言编写C程序的函数 static ...
- Linux系统中使用vim编写C语言代码实现过程
博主这里是阿里云CentOs7的系统,以下涉及到的yum软件安装命令,在其他Linux发行版上可能会有些许不同,望读者安装时注意,如出现命令无法识别请根据对应发行版自行百度. 使用Linux进行C语言 ...
- linux系统写一个脚本,编写一个简单的linuxshell脚本
shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...
- Linux系统(Ubuntu)编写C语言程序
1.在当前目录创建hello.c文件,命令vi hello.c(用到编辑器vim,Linux安装vim教程,参考博客Linux安装vim) 2.进入编辑模式(按下键盘"i") 3. ...
最新文章
- vector容器 begin()与end()函数、front()与back()的用法
- 使用Nginx-rtmp-module搭建hls直播
- Python-100 练习题 01 列表推导式
- Touch 方法amp;属性 映射工具
- 操作系统(九)进程控制
- VTK:vtkClipClosedSurface用法实战
- php openssl加密数据长度,PHP使用openssl解密数据(用mcrypt加密)
- 【README3】动态规划之“找零钱”说明最优子结构怎么解决
- go语言 格式化输出
- 建造者模式 php,PHP设计模式之建造者模式定义与用法简单示例
- 基于Cocos2d-x开发guardCarrot--4 《保卫萝卜2》主页面动画
- 10分钟电子邮箱,临时邮箱
- 如何查看电脑连接过的WiFi密码
- 计算机专业推荐的比赛
- 文件比较 java 标红_如何用java输出word里红色的字体,
- 医院信息系统(HIS)的“一个都不能少”!
- 基于css简易实现头像更换动画效果
- OnlyOffice Docker版搬砖心得
- 提取文件内容需要什么工具?
- 继电保护测试相关知识