Страница: 1 |
Страница: 1 |
Вопрос: Консоль
Добавлено: 18.03.06 13:12
Автор вопроса: Softer | Web-сайт:
Скажите, плиз, можно ли как-то сделать так чтобы консольная прога запускалась в моем окне, а не в Виндовском CMD?
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
SL
ICQ: 277007669
Вопросов: 10
Ответов: 86
Профиль | | #1
Добавлено: 18.03.06 14:14
не понятно, что тебе надо
можно запустить cmd, чтоб его не видели, как окно....
Номер ответа: 2
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #2
Добавлено: 18.03.06 15:05
неа... Мне нада чтобы стандартная прога Ping показывала свои рез-ты в мое окно...
Номер ответа: 3
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #3
Добавлено: 18.03.06 15:36
Читай статью на этом сайте про перенаправление вывода из консоли
Номер ответа: 4
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #4
Добавлено: 18.03.06 16:02
а можно сразу линк? А то я так не найду...
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 18.03.06 18:48
Option Explicit
Private Const STD_OUTPUT_HANDLE = -11&
Private Declare Function GetStdHandle Lib "kernel32" (ByVal nStdHandle As Long) As Long
Private Declare Function WriteConsole Lib "kernel32" Alias "WriteConsoleA" (ByVal hConsoleOutput As Long, ByVal lpBuffer As String, ByVal nNumberOfCharsToWrite As Long, lpNumberOfCharsWritten As Long, lpReserved As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Sub Main()
Dim hConsole As Long
Dim txt As String
Dim num_written As Long
'получаем манипулятор стандартного потока вывода
hConsole = GetStdHandle(STD_OUTPUT_HANDLE)
If hConsole = 0 Then MsgBox "Couldn't allocate STDOUT"
txt = "********************************" & vbCrLf & _
"* Concole application on VB! *" & vbCrLf & _
"* Created by Lamerroot. *" & vbCrLf & _
"********************************" & vbCrLf
'работаем, как с обычной консолью, хотя можно было использовать WriteFile
WriteConsole hConsole, txt, Len(txt), num_written, vbNullString
'надо обязательно закрыть манипулятор при окончании работы
CloseHandle hConsole
End Sub
Номер ответа: 6
Автор ответа:
BUG(O)R
ICQ: 827887
Вопросов: 13
Ответов: 142
Web-сайт:
Профиль | | #6
Добавлено: 18.03.06 19:07
Простейший способ:
[code]
Private Declare Function OemToChar Lib "user32" Alias "OemToCharA" _
(ByVal lpszSrc As String, ByVal lpszDst As String) As Long
Function cmd(command As String) As String
Dim result As String
Shell "C:\windows\system32\cmd.exe /c " & command & ">> text.txt", vbHide
Open App.Path & "\text.txt" For Input As #1
result = Input(LOF(1), 1)
Close #1
cmd = Space(Len(result) + 1)
Call OemToChar(result, cmd)
End Function
Private Sub Command1_Click()
MsgBox cmd("dir")
End Sub
[\code]
Более продвинутый способ с использованием пайпов, пример не дам т.к. писла такой только на С++ и Delphi, хотя если поможет могу дать пример на тих языках.
Номер ответа: 7
Автор ответа:
BUG(O)R
ICQ: 827887
Вопросов: 13
Ответов: 142
Web-сайт:
Профиль | | #7
Добавлено: 18.03.06 19:09
HACKER, а это тут причём?
Номер ответа: 8
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #8
Добавлено: 18.03.06 19:25
все попробуем, спасибо.
Номер ответа: 9
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #9
Добавлено: 19.03.06 00:18
Если я правельно понял вопрос, его конечно без пол литра правельно не
поймёшь, то хотят сделать консоль на вб и вывести туда то что выводит
другая программа... Пример работы с консолью я привёл, осталось
показать как поток чужёк консоли перенаправить в свой
Номер ответа: 10
Автор ответа:
Softer
ICQ: 203660381
Вопросов: 29
Ответов: 205
Web-сайт:
Профиль | | #10
Добавлено: 20.03.06 16:19
Спасибо всем! Я пошел другим путем - теперь моя программа пингует сама.
Номер ответа: 11
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #11
Добавлено: 22.03.06 10:24
лучше уж пример CyRax смотреть, чем статью имхо (и тоже на этом сайте)