日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

發(fā)布時間:2024/8/1 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在linux系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 編寫控制臺程序,獲得標(biāo)準(zhǔn)輸入輸出的窗口句柄

GetStdHandle

函數(shù)聲明如下 :

HANDLE GetStdHandle(

DWORD nStdHandle

);

GetStdHandle()返回標(biāo)準(zhǔn)的輸入、輸出或錯誤的設(shè)備的句柄,也就是獲得輸入、輸出 /錯誤的屏幕緩沖區(qū)的句柄。

其參數(shù)nStdHandle的值為下面幾種類型的一種:

值 含義

STD_INPUT_HANDLE 標(biāo)準(zhǔn)輸入的句柄

STD_OUTPUT_HANDLE 標(biāo)準(zhǔn)輸出的句柄

STD_ERROR_HANDLE 標(biāo)準(zhǔn)錯誤的句柄

2. SetConsoleTextAttribute是API設(shè)置控制臺字體顏色和背景色的函數(shù)。廣泛應(yīng)用于電腦編程

BOOL SetConsoleTextAttribute(

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

WORD wAttributes??????? // 設(shè)置文本、背景色

);

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用于存放控制光標(biāo)信息

typedef struct _CONSOLE_CURSOR_INFO {

DWORD? dwSize;

BOOL?? bVisible;

} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;

dwSize:光標(biāo)大小,1-100的值

bVisible:光標(biāo)是否可見

4. SetConsoleCursorInfo設(shè)置光標(biāo)的信息

BOOL SetConsoleCursorInfo(

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

CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo // 光標(biāo)信息

);

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;?? ??? ??? ?// 當(dāng)前光標(biāo)在屏幕的位置

WORD?????? wAttributes; ?? ??? ??? ?// 控制臺相當(dāng)于顯示屏的坐標(biāo),左上和右下的坐標(biāo)

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設(shè)置光標(biāo)位置

BOOL SetConsoleCursorPosition(

HANDLE hConsoleOutput,? // handle to screen buffer

COORD dwCursorPosition? // new cursor coordinates

);

8. WriteConsoleOutput直接寫輸入緩沖區(qū)??梢詫懭腈I盤、鼠標(biāo)等任何Console能夠接收的事件(Event)都可以寫進(jìn)去。鍵盤操作如果是一些可顯示字符可以直接寫 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設(shè)置控制臺的標(biāo)題

BOOL SetConsoleTitle(

LPCTSTR lpConsoleTitle?? // new console title

);

來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/518171/viewspace-677906/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任。

總結(jié)

以上是生活随笔為你收集整理的在linux系统如何获得窗口句柄,编写控制台程序,获得标准输入输出的窗口句柄...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。