IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Программирование (http://www.imho.ws/forumdisplay.php?f=40)
-   -   вывод сообщения в Vb (http://www.imho.ws/showthread.php?t=49078)

Bespalov Roman 20.01.2004 01:04

вывод сообщения в Vb
 
Интересно, есть ли в VB кроме MsgBox другой способ вывода сообщений, а именно - в DOS-окошке?

Mazzi 20.01.2004 10:27

Оператор PRINT

SwiMMeR 20.01.2004 10:54

Bespalov Roman
Поскольку ДОС-окно не является встроенным в VB объектом, то такое выполнить возможно, НО НЕ стандартными функциями ...

Mazzi
Метод PRINT выводит сообщение на форму ... потому как это собственное и есть метод формы :biggrin:

Form1.Print "Привет, Мир!"

Mazzi 20.01.2004 12:00

оппп..извиняюсь..попутал с обыкновенным Basicом..
в VB.Net есть класс Console и там просто работать с консолью.
вобычном VB можно вывести использую API функции по работе с консолью
вот не помню откуда взял пример, можнт поможет
Цитата:

Как подключить консольное окно к приложению 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-файла.


Закройте форму. Окно консоли должно завершиться.

Bespalov Roman 20.01.2004 23:29

Надо мне конечно закупить себе VB.NET, попробую пока сделать через API.

Mazzi 22.01.2004 10:56

Вложений: 1
Может поможет вот это..пример работы с консолью для VB6

Bespalov Roman 22.01.2004 22:05

Это конечно хорошо, но идея несколько другая.

Если я запускаю прогу из под Far-а, то консоль уже открыта, пускай он туда и выводит. Если нет, то пусть открывает новую консоль...

Mazzi 24.01.2004 10:26

The AttachConsole function attaches the calling process to the console of the specified process.
Теперь толко надо найти процесс который вызывает консоль.))


Часовой пояс GMT +4, время: 12:15.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.