• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Dict.CN 在線詞典, 英語(yǔ)學(xué)習(xí), 在線翻譯

            學(xué)海苦作舟,書山勤為徑

            留下點(diǎn)回憶

            常用鏈接

            統(tǒng)計(jì)

            積分與排名

            Denoise

            English study

            Web技術(shù)

            數(shù)據(jù)壓縮

            一些連接

            最新評(píng)論

            認(rèn)識(shí)控制臺(tái)-什么是控制臺(tái)?

            控制臺(tái)管理字符模式程序的輸入和輸出(程序不需要提供他們自己的圖形用戶界面)。

            控制臺(tái)函數(shù)使訪問(wèn)不同級(jí)別的控制臺(tái)成為可能。高級(jí)控制臺(tái) I/O 函數(shù)使程序可以從標(biāo)準(zhǔn)輸入來(lái)重新得到存儲(chǔ)在控制臺(tái)輸入緩沖區(qū)中的鍵盤輸入;這些函數(shù)也能夠是程序可以向標(biāo)準(zhǔn)輸出寫或?qū)㈠e(cuò)誤顯示在標(biāo)準(zhǔn)的控制臺(tái)緩沖區(qū)中。高級(jí)別的控制臺(tái)函數(shù)也支持重定向標(biāo)準(zhǔn)的句柄和不同 I/O 功能的控制臺(tái)模式。低級(jí)別的 I/O 函數(shù)能夠使程序接收詳細(xì)的鍵盤輸入和鼠標(biāo)事件,以及控制臺(tái)窗口和用戶交互的事件。低級(jí)函數(shù)也是輸出到屏幕較大的控制。
            控制臺(tái)對(duì)簡(jiǎn)單字符模式程序提供高級(jí)的支持,其通過(guò)讀寫標(biāo)準(zhǔn)輸入和輸出以及標(biāo)準(zhǔn)錯(cuò)誤函數(shù)來(lái)和用戶交互。控制臺(tái)也提供復(fù)雜低級(jí)支持,例如:直接訪問(wèn)控制臺(tái)屏幕緩沖區(qū)以及接收額外輸入信息(例如鼠標(biāo)輸入)。

            什么是控制臺(tái)?

            控制臺(tái)是一個(gè)用來(lái)提供字符模式 I/O 的接口。這種處理器獨(dú)立的機(jī)制使導(dǎo)入一個(gè)存在的字符模式程序或創(chuàng)建一個(gè)新的字符模式工具和程序變的容易。

            控制由輸入緩沖區(qū)和一到多哥屏幕緩沖區(qū)組成。輸入緩沖區(qū)包含一個(gè)輸入記錄的序列,序列中是輸入事件的信息。輸入隊(duì)列也包含鍵按下和松開(kāi)鍵事件。它也能包括鼠標(biāo)事件(指針移動(dòng)和鼠標(biāo)鍵按下或釋放)以及用來(lái)影響活動(dòng)屏幕區(qū)域大小的用戶動(dòng)作。屏幕緩沖區(qū)是一個(gè)控制臺(tái)窗口的二維的字符數(shù)組和彩色數(shù)據(jù)。所有的處理能共享一個(gè)控制臺(tái)。

            系統(tǒng)在啟動(dòng)一個(gè)控制臺(tái)程序的時(shí)候創(chuàng)建一個(gè)控制臺(tái),控制臺(tái)程序是一個(gè)字符模式的程序,入口是 main 函數(shù)。例如,系統(tǒng)在其他命令處理器是會(huì)創(chuàng)建一個(gè)新的控制臺(tái)。當(dāng)命令處理器開(kāi)始一個(gè)新的控制臺(tái)程序時(shí),用戶能指定系統(tǒng)是否為新的程序創(chuàng)建一個(gè)新的控制臺(tái)還是從命令處理器控制臺(tái)繼承。

            一個(gè)程序可以使用下面的方法來(lái)創(chuàng)建一個(gè)控制臺(tái):

            1.? GUI 或控制臺(tái)程序可以使用 CreateProcess 函數(shù)并帶有 CREATE_NEW_CONSOLE 來(lái)創(chuàng)建一個(gè)帶有新控制臺(tái)的控制臺(tái)程序。(默認(rèn)的,控制臺(tái)程序從它的父控制臺(tái)中繼承并且不能保證輸出可以被程序接收)

            2.? GUI 或控制臺(tái)進(jìn)程沒(méi)有附著到一個(gè)控制臺(tái)上的,可以使用 AllocConsole 函數(shù)來(lái)創(chuàng)建一個(gè)新的控制臺(tái)( GUI 程序在創(chuàng)建的時(shí)候不附著到控制臺(tái)上,控制臺(tái)進(jìn)程在使用 DETACHED_PROCESS 標(biāo)志的 CreateProcess 函數(shù)創(chuàng)建的時(shí)候也不附著到控制臺(tái)上。

            典型的情況,一個(gè)程序在錯(cuò)誤發(fā)生并請(qǐng)求用戶交互的時(shí)候使用 AllocConsole 來(lái)創(chuàng)建一個(gè)控制臺(tái)。例如,一個(gè) GUI 程序在阻止使用正常圖形接口程序錯(cuò)誤發(fā)生的時(shí)候能創(chuàng)建一個(gè)控制臺(tái),或一個(gè)控制臺(tái)進(jìn)程沒(méi)有正常地和用戶交互可以創(chuàng)建一個(gè)控制臺(tái)來(lái)顯示錯(cuò)誤。

            進(jìn)程可以在調(diào)用 CreateProcess 的時(shí)候指定 CREATE_NEW_COSOLE 標(biāo)志來(lái)創(chuàng)建一個(gè)控制臺(tái)。這個(gè)方法創(chuàng)建一個(gè)控制對(duì)子進(jìn)程可訪問(wèn),而對(duì)父進(jìn)程不可訪問(wèn)。獨(dú)立的控制臺(tái)對(duì)于是父子進(jìn)程與用戶不沖突的交互成為可能。如果這個(gè)標(biāo)志在一個(gè)控制臺(tái)進(jìn)程創(chuàng)建的時(shí)候沒(méi)有指定,兩個(gè)進(jìn)程都附著到相同的控制臺(tái)上,并且不能保證正確的進(jìn)程能接收到提供給他的輸入。程序可以在創(chuàng)建子進(jìn)程的時(shí)候不繼承輸入緩沖區(qū)的句柄來(lái)避免這種迷惑的情況,或者同時(shí)只有一個(gè)子進(jìn)程繼承輸入緩沖區(qū)句柄來(lái)組織父親進(jìn)程在子進(jìn)程沒(méi)有完成的時(shí)候讀控制臺(tái)輸入。

            創(chuàng)建一個(gè)新的控制臺(tái)結(jié)果是一個(gè)新的控制臺(tái)窗口,同時(shí)也包括獨(dú)立的屏幕緩沖區(qū)。和新控制臺(tái)關(guān)聯(lián)的進(jìn)程可以使用 GetStdHandle 函數(shù)來(lái)得到新的控制臺(tái)輸入和屏幕緩沖區(qū)的句柄。這些句柄使進(jìn)程可以訪問(wèn)控制臺(tái)。

            當(dāng)一個(gè)進(jìn)程使用 CreateProcess ,它可以指定一個(gè) STARTUPINFO 結(jié)構(gòu),該結(jié)構(gòu)的成員控制為子進(jìn)程創(chuàng)建的第一個(gè)新控制臺(tái)的特性。如果 CREATE_NEW_CONSOLE 標(biāo)志被指定, STARTUPINFO 結(jié)構(gòu)在調(diào)用 CreateProcess 時(shí)候影響一個(gè)控制臺(tái)的創(chuàng)建;它也影響子進(jìn)程后來(lái)使用 AllocConsole 來(lái)創(chuàng)建控制臺(tái)。下面的控制臺(tái)特性可以指定:

            1.? 新控制臺(tái)窗口的大小,字符單元

            2.? 新控制臺(tái)窗口的位置,屏幕像素坐標(biāo)

            3.? 新控制臺(tái)屏幕緩沖區(qū)的文本和背景顏色屬性

            4.? 新控制臺(tái)窗口的 TITLE BAR 上的顯示名字

            如果 STARTUPINFO 值沒(méi)有指定,系統(tǒng)使用默認(rèn)的值。子進(jìn)程可以使用 GetStartupInfo 函數(shù)來(lái)判斷 STARTUPINFO 結(jié)構(gòu)中的值。

            進(jìn)程不能改變控制臺(tái)窗口在屏幕上的位置,但下面的控制臺(tái)函數(shù)可以用來(lái)設(shè)置和獲得 STARTUPINFO 結(jié)構(gòu)的其他屬性。

            函數(shù)

            描述

            GetConsoleScreenBufferInfo

            返回窗口大小、屏幕緩沖區(qū)大小和顏色屬性

            SetConsoleWindowInfo

            改變控制臺(tái)窗口的大小

            SetConsoleScreenBufferSize

            該表控制臺(tái)屏幕緩沖區(qū)的大小

            SetConsoleTextAttribute

            設(shè)置顏色屬性

            SetConsoleTitle

            設(shè)置控制臺(tái)窗口的標(biāo)題

            GetConsoleTitle

            獲得控制窗口的標(biāo)題

            進(jìn)程可以使用 FreeConsole 函數(shù)來(lái)分離繼承的控制臺(tái)或通過(guò) AllocConsole 創(chuàng)建的控制臺(tái)。

            posted on 2006-04-24 23:12 笨笨 閱讀(1365) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            99久久精品免费国产大片| 精产国品久久一二三产区区别| 日本福利片国产午夜久久| 女人香蕉久久**毛片精品| 一本综合久久国产二区| 91精品国产9l久久久久| 久久久久亚洲AV无码专区网站 | 99国产精品久久| 久久99亚洲综合精品首页| 伊人久久大香线蕉综合Av | 久久人人爽人人人人爽AV | 色综合久久中文字幕无码| 国产精品久久久天天影视香蕉| 亚洲国产精品综合久久网络| 国产精品99久久久久久人| 日韩电影久久久被窝网| 色综合久久久久网| 亚洲中文久久精品无码| 人人狠狠综合久久亚洲| 99久久精品免费看国产| 精品蜜臀久久久久99网站| 2021最新久久久视精品爱| 国产AⅤ精品一区二区三区久久| 久久久婷婷五月亚洲97号色 | 色综合久久88色综合天天| 亚洲女久久久噜噜噜熟女| 色播久久人人爽人人爽人人片aV| 国产精品久久久久9999高清| 亚洲精品国产美女久久久| 久久久久亚洲AV成人网人人网站| 久久久久国产亚洲AV麻豆| 狠狠人妻久久久久久综合蜜桃| 国产精品久久久久影视不卡| 少妇久久久久久久久久| 亚洲国产精品无码久久一区二区| 久久久久久久免费视频| 亚洲日本va午夜中文字幕久久| 久久亚洲中文字幕精品一区四| 99国内精品久久久久久久| 国产真实乱对白精彩久久| 久久福利片|