概述VB 2005新型控制臺(tái)
VB 2005有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB 2005新型控制臺(tái),包括介紹實(shí)例應(yīng)用程序—DirCopy等方面。
計(jì)算機(jī)用戶經(jīng)常把控制臺(tái)應(yīng)用程序作為一種“遺物”來(lái)看待,但是它們?nèi)匀贿€作為系統(tǒng)管理員的非常喜歡的一部分,而且還是高手用戶的“工具箱”之一。另外,當(dāng)你需要大量重復(fù)的腳本操作,當(dāng)然還有可能的更復(fù)雜的操作時(shí)都會(huì)用到這種控制臺(tái)應(yīng)用程序。
在Visual Basic的早期版本中基本沒(méi)有為創(chuàng)建控制臺(tái)應(yīng)用程序提供多大支持。而且,盡管VB 6及其早期版本能夠創(chuàng)建控制臺(tái)應(yīng)用程序;但是,這不是一種簡(jiǎn)單的或直接的過(guò)程。在VB 6中創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序必須進(jìn)行Win32 API調(diào)用;即使如此,你也不能控制光標(biāo)位置或文本的顏色,而且在很大程度上僅能被限制進(jìn)行從左到右和從上到下的編碼。
如今,VB.net引入了新的控制臺(tái)應(yīng)用程序特征。它不僅在“New Project...”對(duì)話框中提供一種控制臺(tái)應(yīng)用程序工程,而且最重要的是,它還提供了一個(gè)控制臺(tái)(Console)對(duì)象。因此,你不必再“困擾”于 Win32 API了。然而,你還是被限于“從左到右和從上到下”的編碼。但是,VB.net仍然缺乏用于改變光標(biāo)或文本的位置或顏色的方法或?qū)傩?,還有其它許多更高級(jí)的特征。
一、 在VB 2005新型控制臺(tái)應(yīng)用程序特征
基于早期VB.NET版本中所提供的Console對(duì)象,如今的VB 2005又為控制臺(tái)應(yīng)用程序增加了許多優(yōu)秀的特征。下面列出的僅是VB 2005中更為激動(dòng)人心的功能中的一部分:
◆清除控制臺(tái)窗口
◆得到并設(shè)定光標(biāo)位置和大小
◆得到并設(shè)定窗口高度和寬度
◆得到并設(shè)定前景和背景顏色
◆選擇并在控制臺(tái)窗口內(nèi)移動(dòng)部分文本
本文中的其它部分將詳細(xì)地分析一個(gè)控制臺(tái)應(yīng)用程序的創(chuàng)建過(guò)程,以便展示上面這些特征的使用。
二、 實(shí)例應(yīng)用程序—DirCopy
我經(jīng)常從控制臺(tái)窗口中實(shí)現(xiàn)把文件從一個(gè)目錄復(fù)制到另一個(gè)目錄。當(dāng)我復(fù)制一個(gè)含有大量文件的目錄時(shí),我經(jīng)常希望得到一些提示—復(fù)制進(jìn)程完成的怎么樣了?復(fù)制快結(jié)束了還是再等待一會(huì)?為了實(shí)現(xiàn)這一問(wèn)題,我構(gòu)建了一個(gè)控制臺(tái)應(yīng)用程序,它能夠在控制臺(tái)窗口內(nèi)顯示一個(gè)進(jìn)度條來(lái)以圖形化顯示復(fù)制進(jìn)度。
三、 定義功能
為了簡(jiǎn)化本文中的演示目的,DirCopy將使用兩個(gè)命令行參數(shù):一個(gè)源目錄和一個(gè)目的目錄。然后,它把所有文件從源目錄復(fù)制到目的目錄。注意,這個(gè)簡(jiǎn)單的程序無(wú)法復(fù)制源目錄下的子目錄。首先,我編寫(xiě)一個(gè)DisplayUsage子程序。如果使用太多或太少的命令行參數(shù)調(diào)用DirCopy,那么它將調(diào)用DisplayUsage,然后結(jié)束。下列是DisplayUsage子程序的代碼:
- Private Sub DisplayUsage()
- Dim originalForegroundColor As ConsoleConsoleColor = Console.ForegroundColor
- Console.Clear()
- Console.ForegroundColor = ConsoleColor.Green
- Console.WriteLine("DirCopy 1.0")
- Console.WriteLine("Written by Josh Fitzgerald")
- Console.WriteLine(New String("-", Console.WindowWidth))
- Console.WriteLine("DirCopy will copy all of the files from the
- source folder to the")
- Console.WriteLine("destination folder. While the files are
- copying, a progress bar")
- Console.WriteLine("will display the percent complete.")
- Console.WriteLine()
- Console.WriteLine("If a directory name contains spaces, enclose
- it in double quotes.")
- Console.WriteLine()
- Console.Write("Example : ")
- Console.ForegroundColor = ConsoleColor.Magenta
- Console.WriteLine("DirCopy C:\MyFolder C:\MyNewFolder")
- Console.ForegroundColor = ConsoleColor.Green
- Console.WriteLine()
- Console.Write("Example : ")
- Console.ForegroundColor = ConsoleColor.Magenta
- Console.WriteLine("DirCopy ""C:\My Folder"" ""C:\My New Folder""")
- Console.ForegroundColor = originalForegroundColor
- End Sub
該子程序做的***事情是創(chuàng)建一個(gè)變量originalForegroundColor,然后它存儲(chǔ)Console.ForegroundColor 的值。在子程序的***,代碼把Console.ForegroundColor屬性設(shè)置回originalForegroundColor。當(dāng)你分析這部分代碼時(shí),你會(huì)注意到,在每個(gè)修改前景或背景顏色的子程序中都是這樣操作的。在實(shí)際運(yùn)行DirCopy之前,我想確保DirCopy總是讓控制臺(tái)顯示相同的顏色。
DisplayUsage做的下一件事情是,使用Console.Clear方法清除控制臺(tái)屏幕。這是在VB2005中的新方法之一;這樣以來(lái),程序員可以很容易地?fù)碛幸粋€(gè)干凈的控制臺(tái)窗口。
我想讓幫助文本顯眼一點(diǎn),為此,我把ForegroundColor屬性設(shè)置為綠色。然后,我使用Writeline和Write方法把幾行文本輸出到屏幕上。在描述的***,我包括了一些怎樣運(yùn)行DirCopy的示例。我想使得這些示例突出一些;因此,我把ForegroundColor設(shè)置為品紅色。以上介紹VB 2005新型控制臺(tái)。
【編輯推薦】