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


  计算机消费者 时常把操纵台 利用程序作为一种“遗物”来 对待,然而它们 依旧还作为系统治理员的十分喜爱的一 部分,并且还是高手消费者的“工具箱”之一 。另外,当你需求大量 反复的脚本操作,固然还有可能的更复杂的操作时都会用到这种操纵台 利用程序 。

  在Visual Basic的早期版本中 根本没有为 缔造操纵台 利用程序提供多大 支撑 。并且, 只管VB 6及其早期版本 可以 缔造操纵台 利用程序;然而,这不是一种 方便的或直接的过程 。在VB 6中 缔造一个操纵台 利用程序必须进行Win32 API调用; 即便如此,你也不能操纵光标位置或文本的 色彩,并且在很大程度上仅能被 制约进行从左到右和从上到下的编码 。

  如今,VB.NET引入了新的操纵台 利用程序 特色 。它不只在“New Project...”对话框中提供一种操纵台 利用程序工程,并且最主要的是,它还提供了一个操纵台(Console)对象 。 因此,你 毋庸再“困扰”于Win32 API了 。然而,你还是被限于“从左到右和从上到下”的编码 。然而,VB.NET 依旧不足用于转变光标或文本的位置或 色彩的 步骤或属性,还有其它许多更高级的 特色 。

  一、 在VB 2005中的新型操纵台 利用程序 特色

  基于早期VB.NET版本中所提供的Console对象,如今的VB 2005又为操纵台 利用程序添加了许多优异的 特色 。下面列出的仅是VB 2005中更为 冲动人心的 性能中的一 部分:

  · 革除操纵台窗口

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

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

  · 得到并设定前景和背景 色彩

  · 取舍并在操纵台窗口内移动 部分文本

  本文中的其它 部分将 详尽地 综合一个操纵台 利用程序的 缔造过程,以便 展示上面这些 特色的 使用 。

  二、 实例 利用程序—DirCopy

  我 时常从操纵台窗口中实现把文件从一个目录复制到另一个目录 。当我复制一个含有大量文件的目录时,我 时常 盼望得到一些 揭示—复制 历程 实现的怎么样了?复制快 完毕了还是再期待一会?为了实现这一问题,我构建了一个操纵台 利用程序,它 可以在操纵台窗口内显示一个进度条来以图形化显示复制进度 。

  三、 定义 性能

  为了简化本文中的演示 目标,DirCopy将 使用两个命令行参数:一个源目录和一个 目标目录 。 而后,它把全部文件从源目录复制到 目标目录 。 留神,这个 方便的程序 无奈复制源目录下的子目录 。

  首先,我编写一个DisplayUsage子程序 。假如 使用太多或太少的命令行参数调用DirCopy,那么它将调用DisplayUsage, 而后 完毕 。图1显示了在没有任何命令行参数时运行DirCopy的 后果 。

Visual Basic

图1:DisplayUsage子程序运行 后果

  下列是DisplayUsage子程序的代码:

Private Sub DisplayUsage()

 Dim originalForegroundColor As ConsoleColor = 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

  该子程序做的第一 事件是 缔造一个变量originalForegroundColor, 而后它存储Console.ForegroundColor的值 。在子程序的最终,代码把Console.ForegroundColor属性设置回originalForegroundColor 。当你 综合这 部分代码时,你会 留神到,在每个 批改前景或背景 色彩的子程序中都是这样操作的 。在实际运行DirCopy之前,我想确保DirCopy总是让操纵台显示 雷同的 色彩 。

  DisplayUsage做的下一件 事件是, 使用Console.Clear 步骤 革除操纵台屏幕 。这是在VB2005中的新 步骤之一;这样以来,程序员 可以很方便地 占有一个 清洁的操纵台窗口 。

  我想让协助文本显眼丝毫,为此,我把ForegroundColor属性设置为绿色 。 而后,我 使用Writeline和Write 步骤把几行文本输出到屏幕上 。在 形容的最终,我包含了一些 怎么运行DirCopy的示例 。我想使得这些示例突出一些; 因此,我把ForegroundColor设置为品红色 。