Как подключить консольное окно к приложению
Visual Basic
Эта статья демонстрирует подключение
консольного окна к приложению Visual Basic, из
которого можно записывать в это консольное окно
и запускать другие приложения в этом консольном
окне.
Пример по шагам
- Воспользуйтесь Блокнотом (Notepad) для создания
следующего bat-файла:
DIR /W
и сохраните его как C:\TEST.BAT
- В Visual Basic создайте новый проект с формой и
модулем.
- Занесите в модуль следующие объявления API
функций:
Option Explicit
Declare Function AllocConsole Lib "kernel32" () As Long
Declare Function FreeConsole Lib "kernel32" () As Long
Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) _
As Long
Declare Function GetStdHandle Lib "kernel32" (ByVal _
nStdHandle As Long) As Long
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
Public Const STD_OUTPUT_HANDLE = -11&
- Добавьте на форму кнопку и введите следующий
код:
Dim hConsole As Long
Private Sub Command1_Click()
Dim Result As Long, sOut As String, cWritten As Long
sOut = "Hi There" & vbCrLf
Result = WriteConsole(hConsole, ByVal sOut, Len(sOut), cWritten, _
ByVal 0&)
Shell "C:\TEST.BAT"
End Sub
Private Sub Form_Load()
If AllocConsole() Then
hConsole = GetStdHandle(STD_OUTPUT_HANDLE)
If hConsole = 0 Then MsgBox "Couldn't allocate STDOUT"
Else
MsgBox "Couldn't allocate console"
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
CloseHandle hConsole
FreeConsole
End Sub
- Запустите приложение. Появится пустое окно
консоли.
- Кликните по кнопке. В консоле должны появиться
текст в sOut и вывод из bat-файла.
- Закройте форму. Окно консоли должно
завершиться.
|