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,所以想写一个批处理来编 ...
随机推荐
- 使用just-api 进行接口测试
just-api 是基于配置的测试,同时支持基于jsonpath jsonschema 的数据校验, 对于数据的请求只集成hook,支持测试失败重试.测试报告.graphql api 测试.... 使 ...
- Selenium(ThoughtWorks公司开发的web自动化测试工具)
Selenium也是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7.8.9).Mozilla Firefox.Mozill ...
- silverlight 进行本地串口调用的一种可行的解决方法 之silverlight端代码
接上边的文章. 在javascript暴露操作activex 串口接收之后,就是silverlight端进行串口数据的显示,我们的显示方式比较简单,只是为了演示,我们每隔1秒进行数据的获取并显示, 为 ...
- 命令行net time同步时间(内网)
首先还是推荐大家使用Internet时间来同步自己计算机的时间,这样做主要是方便,就是设置一个ntp服务器,我推荐下面的三个ntp服务器地址. time.asia.apple.com //亲测有效 a ...
- nyoj 探寻宝藏
探 寻 宝 藏 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 传说HMH大沙漠中有一个M*N迷宫,里面藏有许多宝物.某天,Dr.Kong找到了迷宫的地图,他发现迷宫内处 ...
- HTTP报头:通用报头,请求报头,响应报头和实体报头
缓存控制优先级从高到低分别是Pragma -> Cache-Control -> Expires 报头 每一个报头都是由 [名称 + ":" + 空格 + 值 + ] ...
- elastic-job 分布式定时任务框架 在 SpringBoot 中如何使用(二)动态添加任务需求
之前一篇用过了如何在使用创建最简单的任务:比如每天定时清空系统的缓存 这篇文章主要讲解:如何运用elastic-job-lite做灵活的细粒度任务,比如: 如何定时取消某个订单在下订单后30分钟未支付 ...
- 【appium】根据name定位元素
目前没有尝试成功,等成功后补充 个人建议可以尝试先用view显示的文本作为name看是否能拿到该控件,按照我个人的经验一般都是会成功的,所以我很怀疑安卓上面控件的name是否就等于text.
- 关于innodb_thread_concurrency参数 并发控制
http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_thread_concurrency Comma ...
- msql主从复制
Mysql数据库主从复制原理: 主库开启bin-log日志,同时生成IO线程.IO线程负责将用户写入数据库的sql语句记录在二进制日志bin-log,该记录过程可并发进行:生成标识号 server i ...