您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
应用:用VB建立字符界面的控制台程序
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北师大IT 软件工程与测试实战班电话预约北京师范大学¥1800
北师大IT 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000
     
   编辑推荐:VB初学者

  即使是初学VB的人,对于如何用它来建立一个GUI界面的标准Windows应用程序,肯定也是胸有成竹;然而,对于如何用VB来编写字符界面的控制台程序(Console-Mode Applications),知道的人恐怕不多。有人甚至认为这是不可能的,因为VB对编写控制台程序并无内在的支持,在VB的“新建工程”对话框里没有“控制台程序”这一选项。实际上,利用Windows提供的应用程序编程接口(API),VB是能够建立控制台程序的。控制台程序与图形界面的标准Windows程序不同,它没有Windows程序所通行的窗口,其与用户的交互是基于字符界面,外观类似于“MS-DOS方式”,同标准的Windows程序相比,控制台程序具有界面简单、占内存少、生成的可执行文件小的优点,因而在某些场合还有用武之地。

  由于VB对建立控制台程序并无内在支持,全部工作都是依靠调用API函数来完成,故首先要用VB建立一个新的“标准EXE”工程,并删除其默认窗体(Form1),添加一标准模块(Module1),将其改名为VBConsole.bas,后续的所有工作都是在此模块中完成的。

  下面按功能分类逐一介绍本文用到的API函数。

  1.创建和销毁控制台窗口(consol window)用VB创建控制台程序的第一步就是为VB程序创建一个console window,并在程序结束时销毁它。这分别用到AllocConsole和FreeConsole函数。

Private Declare Function AllocConsole Lib "kernel32"() As Long
  
  功能:为VB程序创建一个 console window。

Private Declare Function FreeConsole Lib "kernel32"() AS Long

  功能:销毁为VB程序创建的 console window。

  2.取得所建立的 console window 的句柄(Handle)

  DOS程序有三个标准文件:标准输入文件(stdin),标准输出文件(stdout),标准错误文件(siderr)。与此类似,控制台程序窗口有三个句柄:

  输入句柄(input handle) — 指向控制台程序的输入缓冲区

  输出句柄(output handle)、错误句柄(error handle)— 指向控制台程序的屏幕输出缓冲区

  在能够进行输入/输出操作之前,必须用 GetstdHandle 函数取得 console window 的这三个句柄。

Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
  
  功能:返回 console window 的三个句柄之一。

  说明:参数nStdHandle决定此函数返回的是哪一个句柄,它可以取如下值之一:

Private Const STD_INPUT_HANDLE = -10&   ''返回 input handle
Private Const TD_OUTPUT_HANDLE = - 11&  ''返回 output handle
Private Const STD_ERROR_HANDLE = -12&   ''返回 error handle

  3.控制台输入/输出创建了

  console window 并获得其 input/output handle 后,就可以利用WriteConsole和ReadConsole进行输入/输出了。

Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" _
(ByVal hConsoleoutput As Long,ByVal lpBuffer As Any, ByVal nNumberofCharsTowrite _
As Long, IpNumberofCharsWritten As Long, lpReserved As Any) As Long

  功能:向控制台窗口输出字符串。

  说明:hConsoleOutput—控制台的outputhandle。
     lpBuffer—要输出的字符串。
     nNumberOfCharsToWrite—要输出的字符串的长度。
     lpNumberofCharsWritten—实际输出的字符串的长度,可置为vbNull。
     lpReserved—保留,必须置为vbNul。

Private Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA" _
(ByVal hConsoleInput As Long, ByVal lpBuffer As String, ByVal nNumberofCharsToRead _
As Long,lpNumberofCharsRead As Long, lpReserved As Any) As Long

  

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:应用说明:通信控件MSComm使用详解
下一篇:实例:Visual Basic应用程序的几种打印方法
 相关新闻
·JBuilder2005实战JSP之切换控制·软件应用:如何用Visual Basic编写病毒
·应用:用VB6.0在Vista下实现全磨砂玻璃窗口·软件应用:VB与Oracle数据库中的日期转换
·实例:Visual Basic构建线程安全的Singleton·程序:VB中运用反射原理优化程序代码
·程序编写:教你如何用Visual Basic编写病毒·应用:Visual Basic中实现带预览的对话框
·ASP.NET实现投票结果的图片进度条显示·优化:理解ASP.NET与客户端缓存之HTTP协议
·讲解:尝试自己做出VB.NET风格的右键菜单·应用实例:关于Visual Basic 9.0的动态标识符
·应用:VB6中使用Winsock穿越各种代理的实现·简单应用:在Visual Basic中使用WinSock控件
·应用实例:利用VB6.0实现五线谱作曲工具·实例:Visual Basic应用程序的几种打印方法
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2008年云南公务员考试专业试卷之科技环保
·2008年云南公务员考试试卷之教育文化类专
·2008年云南公务员考试试卷参考答案之科技
·2008年云南公务员考试试卷参考答案之教育
·2008年公务员考试科教管理类专业试卷参考
·2008年公务员考试科教管理类专业试卷(云
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例