自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Windows控制臺下輸入輸出控制

運維 系統(tǒng)運維
本文介紹了換一種方式寫Windows控制臺程序,這樣輸入輸出就可以自由控制,而不是受限制的使用。

以前老是用標準的C/C++寫Windows控制臺程序,用的都是標準的庫里面的程序,輸入輸出都特別受限制。感覺就像是在一個無法改變的舞臺上跳舞,但是無論跳得多好,舞臺始終還是老樣子,沒辦法根據(jù)舞蹈來布置。這兩天要弄個控制Console輸入輸出的程序,查了一下MSDN才知道怎么去更加深入地利用這個舞臺。

我們大家都知道Windows API是一套用來控制Windows的各個部件的外觀和行為的一套預(yù)先定義的Windows函數(shù)。用戶的每個動作都會引發(fā)一個或幾個函數(shù)的運行以告訴Windows發(fā)生了什么。

那么此時我們無非就是用幾個API便可搞定: 

1.WriteConsoleOutput 這個API從指定的位置開始輸出字符串。需要一個Windows控制臺的HANDLE,可以通過GetStdHandle(STD_OUTPUT_HANDLE);獲得。這樣就能夠隨意控制輸出的格式。

2.ReadConsoleOutputCharacter 這個API從特定的Windows控制臺緩沖區(qū)的某個位置開始讀取一定數(shù)量的字符。這個在理解屏幕上的文字的時候特別有用。

3.ReadConsoleInput 這個讀取輸入緩沖區(qū)里面的內(nèi)容使用GetStdHandle(STD_INPUT_HANDLE)獲取Console的輸入句柄。通過這個函數(shù)可以對輸入進行更底層的控制。這個函數(shù)的好處在于,它還能獲得對于這個Console的鍵盤和鼠標輸入,也就是相當于窗口程。

4.WriteConsoleInput 這個就比較好玩了,直接寫輸入緩沖區(qū)??梢詫懭腈I盤、鼠標等任何Console能夠接收的時間(Event)都可以寫進去。里面鍵盤操作如果是一些可顯示字符可以直接寫ASCII字符,否則的話可能要用鍵盤掃描碼(scan code)了。我查的MSDN的時候查虛擬碼(Vritual Key Code)好像比較容易。這樣可以用API MapVirtualKey將虛擬碼轉(zhuǎn)成掃描碼,當然這個API也能進行逆向轉(zhuǎn)換。

Windows控制臺還有一些相關(guān)函數(shù),數(shù)量不多,都可以通過相關(guān)查找找到,有了這些函數(shù),寫任何自動操作都沒問題了。

Windows控制臺中的函數(shù)大家只需要查找常用的相關(guān)函數(shù),便于大家方便使用就可以了。希望本文能夠?qū)Υ蠹矣兴鶐椭?/p>

【編輯推薦】

  1. Windows控制臺光標控制
  2. 在Qt中如何寫控制臺程序
  3. 掌握一些優(yōu)化和調(diào)教IIS控制臺的技巧
  4. c#中重定向windows控制臺程序的輸出信息
  5. MySQL基本操作(控制臺)的基本操作步驟
責(zé)任編輯:韓亞珊 來源: 博客轉(zhuǎn)載
相關(guān)推薦

2011-07-06 15:25:33

Windows控制臺

2011-07-11 14:20:19

2011-07-11 10:30:46

2011-07-11 09:57:19

WINDOWS控制臺DOS命令

2011-07-11 13:52:45

Windows控制臺

2011-07-11 13:43:45

Windows控制臺

2011-07-19 15:15:59

故障恢復(fù)控制臺

2009-04-28 09:51:21

WinForm控制臺輸出

2011-07-26 18:13:53

控制臺

2010-12-21 14:32:43

操作控制臺

2011-11-28 09:25:36

Java輸入輸出

2021-05-07 20:01:23

IO輸入輸出

2014-08-11 11:12:35

Jansi

2011-07-19 15:38:15

故障恢復(fù)控制臺

2011-07-11 15:52:47

RCWindows

2011-07-26 18:00:09

控制臺

2011-07-11 14:38:12

Windows XP控制臺

2009-12-23 10:57:20

nohup命令

2011-08-08 10:55:14

IOS 控制臺 Consol

2014-09-04 11:39:43

Linux
點贊
收藏

51CTO技術(shù)棧公眾號