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

时间: 2024-10-13 23:56:51

VB6 创建控制台应用程序的相关文章

C#使用定时任务框架Windows.TaskSchedule.exe安装控制台应用程序创建的Windows服务

上一篇介绍了利用模板创建.安装以及卸载Windows服务,本篇继续研究这个话题,不过是创建控制台程序,使用Windows.TaskSchedule.exe安装. 为什么要使用控制台程序?--调试简单粗暴.哈哈. 创建控制台应用程序项目后,我们编辑服务主体代码,我们继续向文本文件中写入一句话. 在实现具体逻辑前,我们需要引用Windows.TaskSchedule.Extends.dll,服务类继承 IJob . 1 using System; 2 using System.Configurati

如何创建桌面应用程序

上次我们创建了控制台应用程序,今天我们就谈谈如何创建桌面应用程序. 第一步.我们打开VS2017,出现如下界面(此界面前面我们已讲过,这里就不再谈论了): 第二步.单击“文件(F)--->新建(N)--->项目(P)...”就弹出“新建项目”对话框,其界面如下: 第三步.在此对话框中选择“Visual C#--->Windows 桌面--->WPF 应用(.NET Framework)”,并且选择好文件保存的路径(即界面的“位置”),最后单击“确定”按钮即可创建控制台应用程序,其界

vs创建控制台程序使用C++读写excel文件(ODBC方式)

1.创建一个vs项目,选择windows控制台应用程序,项目名称输入cppRWexcel 2.在StdAfx.h文件最下方加入如下代码: #include <iostream> #include <afxdb.h> #include <odbcinst.h> using namespace std; 3.在cppRWexcel.cpp中写入如下代码: // cppRWexcel.cpp: 定义控制台应用程序的入口点. // #include "stdafx.h

使用C#创建SQLite控制台应用程序

本文属于原创,转载请注明出处,谢谢! 一.开发环境 操作系统:Windows 10 X64 开发环境:VS2015 编程语言:C# .NET版本:.NET Framework 4.0 目标平台:X86 二.前言 之前使用的是软件的Access来创建基于本地的数据库软件,发现在使用过程中,发现Access比较耗内存,运行速度比SQLite稍微慢,另外一个最重要的是Access加密的文件容易被破解,因此,现在转向使用SQLite来代替Access. 三.SQLite的下载 1.由于是基于.NET的C

如何创建 C# 控制台应用程序

[转] 如何:创建 C# 控制台应用程序 本主题旨在生成最简单形式的 C# 程序(控制台应用程序)熟悉 Visual Studio 2008 开发环境.由于控制台应用程序是在命令行执行其所有的输入和输出,因此对于快速测试语言功能和编写命令行实用工具,它们是理想的选择. 在本节中,将学习到: 如何创建新的控制台应用程序. 如何在代码编辑器中使用书签. 如何查看解决方案资源管理器. 如何使代码保持良好的格式. 如何使用 IntelliSense 更快更准确地输入代码. 如何生成并运行应用程序. 在该

《Visual c++2013入门经典(第7版)》上机练习:为 Win32 控制台应用程序创建项目

看到<那些年我们追过的Wrox精品红皮计算机图书>有奖活动 下载了<Visual c++2013入门经典(第7版)>的试读PDF,开始学习. 这本书的读者对象本书针对任何想要学习如何使用 Visual C++编写在 Microsoft Windows 操作系统下运行的 C++应用程序的读者.阅读本书不需要预先具备任何特定编程语言的知识.如果属于下列 3 种情形之一,你就适合学习本教程:● 属于编程新手,十分渴望投入编程世界,并最终掌握 C++.要取得成功,你至少需要对计算机的工作原

在控制台应用程序下,创建窗口,避开WinMain函数入口

---恢复内容开始--- 一直以来,采用C语言方式的Windows编程的时候,程序的入口必须是WinMain()函数,当开始学习MFC的时候,又觉的MFC的框架结构繁冗混乱,萌生了自己写一个窗口类编写Windows程序,同时想和C#一样避开WinMain的启动函数,所以在网上搜寻并总结了这样一篇文章,作为笔记和大家一起学习.稍后如果我有精力的话,我会自己慢慢的封装一些窗口类,简化Windows编程的难度.希望能像C#一样具有很强的逻辑框架.如果有志同道合的新手可以在我的这一篇下面留言,一起组成兴

C#取得控制台应用程序的根目录方法 判断文件夹是否存在,不存在就创建

取得控制台应用程序的根目录方法1:Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径2:AppDomain.CurrentDomain.BaseDirectory 获取基目录,它由程序集冲突解决程序用来探测程序集  取得WinForm应用程序的根目录方法1:Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径2:Application.StartupPath.ToString();//

Visual Studio 2015专业版创建Win32控制台应用程序,C,C++源文件

问题: 原配的Visual Studio 2015专业版不像之前的版本,在新建项目里面是找不到Win32模板的,那么怎么才能新建Win32项目和Win32控制台应用程序呢?先看如下图所示: 解决: 1.添加的办法是点击上图所示的新建项目界面的Visual C++下面的Windows,再点击右边的"安装通用Windows平台工具",弹出如下对话框,点击"安装": 2.如果当前Visual Studio 2015正打开,会提示将其关闭以减少资源的利用,点击继续: 3.如