VB6 创建控制台应用程序
' 功能:为VB程序创建一个consolewindow。
Private Declare Function AllocConsole Lib
"kernel32" () As Long
'功能:销毁为VB程序创建的consolewindow。
Private Declare
Function FreeConsole Lib "kernel32" () As
Long
' DOS程序有三个标准文件:标准输入文件(stdin),标准输出文件(stdout),标准错误文件(siderr)。与此类
'似,控制台程序窗口有三个句柄:
' 输入句柄(inputhandle)—指向控制台程序的输入缓冲区
' 输出句柄(outputhandle)、错误句柄(errorhandle)—指向控制台程序的屏幕输出缓冲区
' 在能够进行输入/输出操作之前,必须用GetstdHandle函数取得consolewindow的这三个句柄。
'功能:返回consolewindow的三个句柄之一。
Private
Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As
Long
'nStdHandle参数说明:
Private Const INPUT_HANDLE =
-10& '返回inputhandle
Private Const OUTPUT_HANDLE = -11&
'返回outputhandle
Private Const ERROR_HANDLE =
-12& '返回errorhandle
' consolewindow并获得其input/outputhandle后,就可以利用WriteConsole和ReadConsole进行输入/输出了。
'功能: 向控制台窗口输出字符串?
'说明: hConsoleOutput—控制台的outputhandle?
'
lpBuffer—要输出的字符串?
'
nNumberOfCharsToWrite—要输出的字符串的长度?
' lpNumberofCharsWritten—实际输出的字符串的长度,可置为vbNull。
' lpReserved—保留,必须置为vbNul。
Private
Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA"
_
(ByVal hConsoleOutput As
Long, _
lpBuffer As Any,
_
ByVal
nNumberOfCharsToWrite As Long,
_
lpNumberOfCharsWritten As
Long, _
lpReserved As Any)
As Long
'功能:
从输入缓冲区输入字符串?
' 说明:此函数是以块方式输入信息。在本文的示例中,只有用户按了Enter(回车)键后,此函数才返回。
' hConsoleInput—consolewindow的inputhandle?
' lpBuffer—输入缓冲区地址?
' nNumberOfCharsToRead—输入缓冲区的长度?
' lpNumberOfCharsRead—实际读入的字符数,可置为vbNull。
' lpReserved—保留,必须置为vbNull。
Private
Declare Function ReadConsole Lib "kernel32" Alias "ReadConsoleA"
_
(ByVal hConsoleInput As
Long, _
lpBuffer As Any,
_
ByVal nNumberOfCharsToRead
As Long,
_
lpNumberOfCharsRead As
Long, _
lpReserved As Any) As
Long
'功能: 设置控制台输入缓冲区的输人模式或屏幕输出缓冲区的输出模式?
'
说明:在用ReadConsole和WriteConsole函数行输入/输出前,要用此函数设置好输入/输出模式。
' hConsoleHandle—consolewindow的Inputhandle或outputhandle
Private
Declare Function SetConsoleMode Lib "kernel32" (ByVal hConsoleHandle As Long,
ByVal dwMode As Long) As
Long
'dwMode是要设置的输入或输出模式值。hConsoleHandle是Inputhandle时,dwMode可取如下值的组合:
Private
Const LINE_INPUT = &H2
Private Const ECHO_INPUT = &H4
Private
Const MOUSE_INPUT = &H10
Private Const PROCESSED = &H1
Sub
Main()
Call AllocConsole
Dim inputHandle As Long
Dim str As
String
Dim outputHandle As Long
str = "hello world" &
vbCrLf
outputHandle = GetStdHandle(OUTPUT_HANDLE)
Call
WriteConsole(outputHandle, ByVal str, Len(str), vbNull, vbNull)
inputHandle = GetStdHandle(INPUT_HANDLE)
Call ReadConsole(inputHandle,
vbNull, 255, vbNull, vbNull)
Call FreeConsole
End Sub
VB6 创建控制台应用程序的更多相关文章
- .net core创建控制台应用程序和mvc程序
一.创建控制台应用程序 1.查看支持哪些类型:dotnet new --help 2.创建项目(先定位到需要创建的目录) dotnet new console -o ./myconsole 3.查看目 ...
- 添加宿主为控制台应用程序的WCF服务
1.创建WCF服务库:WcfServiceLibrary,根据自动创建的代码修改自己的WCF 服务协议.操作协议.数据协议.本次先实现简单的WCF最基本的通信方式:请求->应答模式. 定义服务. ...
- yii创建控制台命令
创建控制台命令程序1.控制台命令继承自 yii\console\Controller控制器类2.在控制器类中,定义一个或多个动作,动作与控制台子命令相对应3.在动作方法中实现业务需求的代码 运行控制台 ...
- C#控制台应用程序
使用C#创建控制台应用程序的基本步骤: (1)创建项目: (2)编辑C#源代码: (3)编译运行: 例题:在控制台输出“Hello world!”. 第一步:文件→新建→项目:选择“项目类型”为Vis ...
- 如何创建 C# 控制台应用程序
[转] 如何:创建 C# 控制台应用程序 本主题旨在生成最简单形式的 C# 程序(控制台应用程序)熟悉 Visual Studio 2008 开发环境.由于控制台应用程序是在命令行执行其所有的输入和输 ...
- 使用C#创建SQLite控制台应用程序
本文属于原创,转载请注明出处,谢谢! 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 ...
- C#取得控制台应用程序的根目录方法 判断文件夹是否存在,不存在就创建
取得控制台应用程序的根目录方法1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径2:AppDomain.CurrentDomain.BaseDirect ...
- 在 Visual Studio 中创建一个简单的 C# 控制台应用程序
转载:https://blog.csdn.net/qq_43994242/article/details/87260824 快速入门:使用 Visual Studio 创建第一个 C# 控制台应用 h ...
- 如何编写一个编译c#控制台应用程序的批处理程序
如何编写一个编译c#控制台应用程序的批处理程序 2011-03-22 18:14 dc毒蘑菇 | 浏览 579 次 最近在网上看了一个教程,是学C#的,但是我的机子上装不上vs,所以想写一个批处理来编 ...
随机推荐
- Linux引导启动顺序
1.所有的__init函数在区段.initcall.init中还保存了一份函数指针,在初始化时内核会通过这些函数指针调用这些__init函数,并在整个初始化完成后,释放整个init区段(包括.init ...
- es 中的 Iterator
for...in 遍历(当前对象及其原型上的)每一个属性名称,而 for...of 遍历(当前对象上的)每一个属性值 ES6 规定,默认的 Iterator 接口部署在数据结构的Symbol.iter ...
- php生成迷宫和迷宫寻址算法实例
较之前的终于有所改善.生成迷宫的算法和寻址算法其实是一样.只是一个用了遍历一个用了递归.参考了网上的Mike Gold的算法. <?php //zairwolf z@cot8.com heade ...
- 客户端用javascript获取grid的数据。
- XFire构建web service客户端的五种方式
这里并未涉及到JSR 181 Annotations 的相关应用,具体的三种方式如下 ① 通过WSDL地址来创建动态客户端 ② 通过服务端提供的接口来创建客户端 ③ 使用Ant通过WSDL文件来生成客 ...
- Angularjs 事件指令
1. 点击事件 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" ...
- css学习日记
相对偏移 指定left top等属性就能够够完美控制一个元素的位置 如: position:relative; left:2px; 今天遇到一个很好玩的问题,当两个并排浮动框,当一个框的长度太大时就会 ...
- IplImage的数据结构以及遍历方法
一般我们需要对图像直接进行操作的时候,需要知道图像存储的数据结构,这要也就知道了它的遍历方式 在opencv2.4.4版本下,IplImage的数据结构如下(貌似在别的版本下差别也不会太大) 其中比较 ...
- php如何分割字符串?php mb_substr分割字条串,解决中文乱码问题,支持分割中文! (转)
因为网站开发需要,必须有一项功能可以把字符串一个一个分割开来,并且转换为数组. 刚开始用“str_split函数”在实验分割中文字符时就出现了乱码. 蚂蚁学院经过一翻研究,最终发现以下方法可以有效分割 ...
- 【Spring实战-3】Spring整合Hibernate、Struts
作者:ssslinppp 1. 摘要 版本: Spring4.0.4:Hibernate4.3.5:struts2.3.16: 主要介绍了如下内容: 项目结构的规划: Spring下整合Hi ...