电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

VB 2005中开发新一代控制台应用程序


发布日期:2018/9/9
 

计算机用户经常把控制台应用程序作为一种遗物来看待但是它们仍然还作为系统管理员的非常喜欢的一部分而且还是高手用户的工具箱之一另外当你需要大量重复的脚本操作当然还有可能的更复杂的操作时都会用到这种控制台应用程序

在Visual Basic的早期版本中基本没有为创建控制台应用程序提供多大支持而且尽管VB 及其早期版本能够创建控制台应用程序但是这不是一种简单的或直接的过程在VB 中创建一个控制台应用程序必须进行Win API调用即使如此你也不能控制光标位置或文本的颜色而且在很大程度上仅能被限制进行从左到右和从上到下的编码

如今引入了新的控制台应用程序特征它不仅在New Project对话框中提供一种控制台应用程序工程而且最重要的是它还提供了一个控制台(Console)对象因此你不必再困扰于 Win API了然而你还是被限于从左到右和从上到下的编码但是仍然缺乏用于改变光标或文本的位置或颜色的方法或属性还有其它许多更高级的特征

在VB 中的新型控制台应用程序特征

基于早期VBNET版本中所提供的Console对象如今的VB 又为控制台应用程序增加了许多优秀的特征下面列出的仅是VB 中更为激动人心的功能中的一部分

◆清除控制台窗口

◆得到并设定光标位置和大小

◆得到并设定窗口高度和宽度

◆得到并设定前景和背景颜色

◆选择并在控制台窗口内移动部分文本

本文中的其它部分将详细地分析一个控制台应用程序的创建过程以便展示上面这些特征的使用

实例应用程序—DirCopy

我经常从控制台窗口中实现把文件从一个目录复制到另一个目录当我复制一个含有大量文件的目录时我经常希望得到一些提示—复制进程完成的怎么样了?复制快结束了还是再等待一会?为了实现这一问题我构建了一个控制台应用程序它能够在控制台窗口内显示一个进度条来以图形化显示复制进度

定义功能

为了简化本文中的演示目的DirCopy将使用两个命令行参数一个源目录和一个目的目录然后它把所有文件从源目录复制到目的目录注意这个简单的程序无法复制源目录下的子目录

首先我编写一个DisplayUsage子程序如果使用太多或太少的命令行参数调用DirCopy那么它将调用DisplayUsage然后结束显示了在没有任何命令行参数时运行DirCopy的结果

)thisstylewidth=;>图DisplayUsage子程序运行结果

下列是DisplayUsage子

程序的代码

borderColorDark=#ffffff cellPadding= width= align=center borderColorLight=black border=>ee>

Private Sub DisplayUsage()

Dim originalForegroundColor As ConsoleColor = ConsoleForegroundColor

ConsoleClear()

ConsoleForegroundColor = ConsoleColorGreen

ConsoleWriteLine(DirCopy )

ConsoleWriteLine(Written by Josh Fitzgerald)

ConsoleWriteLine(New String( ConsoleWindowWidth))

ConsoleWriteLine(DirCopy will copy all of the files from the

source folder to the)

ConsoleWriteLine(destination folder While the files are

copying a progress bar)

ConsoleWriteLine(will display the percent complete)

ConsoleWriteLine()

ConsoleWriteLine(If a directory name contains spaces enclose

it in double quotes)

ConsoleWriteLine()

ConsoleWrite(Example : )

ConsoleForegroundColor = ConsoleColorMagenta

ConsoleWriteLine(DirCopy C:\MyFolder C:\MyNewFolder)

ConsoleForegroundColor = ConsoleColorGreen

ConsoleWriteLine()

ConsoleWrite(Example : )

ConsoleForegroundColor = ConsoleColorMagenta

ConsoleWriteLine(DirCopy C:\My Folder C:\My New Folder)

ConsoleForegroundColor = originalForegroundColor

End Sub

该子程序做的第一事情是创建一个变量originalForegroundColor然后它存储ConsoleForegroundColor的值在子程序的最后代码把ConsoleForegroundColor属性设置回originalForegroundColor当你分析这部分代码时你会注意到在每个修改前景或背景颜色的子程序中都是这样操作的在实际运行DirCopy之前我想确保DirCopy总是让控制台显示相同的颜色

DisplayUsage做的下一件事情是使用ConsoleClear方法清除控制台屏幕这是在VB 中的新方法之一这样以来程序员可以很容易地拥有一个干净的控制台窗口

我想让帮助文本显眼一点为此我把ForegroundColor属性设置为绿色然后我使用Writeline和Write方法把几行文本输出到屏幕上在描述的最后我包括了一些怎样运行DirCopy的示例我想使得这些示例突出一些因此我把ForegroundColor设置为品红色

上一篇:检测含有中文字符串的实际长度

下一篇:不要在using语句中调用WCF服务