
VB2005中开发新一代控制台应用程序
发布时间:2006-06-19 17:14:06 来源:天极开发 网友评论 0 条
计算机用户经常把控制台应用程序作为一种“遗物”来看待,但是它们仍然还作为系统管理员的非常喜欢的一部分,而且还是高手用户的“工具箱”之一。另外,当你需要大量重复的脚本操作,当然还有可能的更复杂的操作时都会用到这种控制台应用程序。
在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的结果。
下列是DisplayUsage子程序的代码:
该子程序做的第一事情是创建一个变量originalForegroundColor,然后它存储Console.ForegroundColor的值。在子程序的最后,代码把Console.ForegroundColor属性设置回originalForegroundColor。当你分析这部分代码时,你会注意到,在每个修改前景或背景颜色的子程序中都是这样操作的。在实际运行DirCopy之前,我想确保DirCopy总是让控制台显示相同的颜色。
DisplayUsage做的下一件事情是,使用Console.Clear方法清除控制台屏幕。这是在VB2005中的新方法之一;这样以来,程序员可以很容易地拥有一个干净的控制台窗口。
我想让帮助文本显眼一点,为此,我把ForegroundColor属性设置为绿色。然后,我使用Writeline和Write方法把几行文本输出到屏幕上。在描述的最后,我包括了一些怎样运行DirCopy的示例。我想使得这些示例突出一些;因此,我把ForegroundColor设置为品红色。
在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的结果。
下列是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设置为品红色。
全站资源
- 微软官方入门教程19:轻松掌握Vista系统的快
- 微软2008大冲击,预借Vista SP1力促Vista市
- 在收件箱中获得 Windows Vista 的最新更新
- 微软官方Vista入门教程全集19篇(Vista学院
- Windows Vista 的成功将势不可挡
- 快快抛弃Vista,拥抱XP SP3!你觉得呢?
- 浅谈Vista系统关闭虚拟内存与使用内存盘加速
- 嘿嘿,按下键盘上面的三个键,马上让你的Vi
- Windows Vista的盗版率只有Windows XP的一半
- 3DMark和PCMark Vantage新版将只支持Vista系
阅读排行
- .net页面间的参数传递简单实例
- VC++与Matlab混合编程之引擎操作详解
- Oracle数据库数据对象分析
- Eclipse3.2+Tomcat5.5.17+Oracle9配置
- Oracle数据库中索引的维护
- 在Oracle的网络结构中解决连接问题
- Oracle数据安全面面观
- Oracle数据库的ORA-00257故障解决过程
- Oracle数据库备份与恢复的三种方法
- Oracle与SQL Server在企业应用中的比较
最新技术文档
- Oracle中使用自治事务保存日志表条目
- 在Oracle的网络结构中解决连接问题
- Oracle数据库备份与恢复的三种方法
- Oracle 9i 数据库WITH查询语法小议
- Hibernate二级缓存攻略
- Oracle 的数据库的数据备份与恢复
- Oracle 10g的安装步骤和注意事项
- 为AJAX应用程序构建一个错误提交系统
- Atlas快速入门之实战Atlas
- 基于AJAX技术提高搜索引擎排名
专题教程
- 大话G游 专题:手机病毒揭密
- ARP攻击防范与解决方案 路由故障处理手册
- Picasa中文版_Picasa教程 专题:清除流氓软件
- Firefox专题 seo搜索引擎优化专区
- 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏

