Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Консоль Добавлено: 18.03.06 13:12  

Автор вопроса:  Softer | Web-сайт: hware.org.ua | ICQ: 203660381  
Скажите, плиз, можно ли как-то сделать так чтобы консольная прога запускалась в моем окне, а не в Виндовском CMD?

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 SL



ICQ: 277007669 

Вопросов: 10
Ответов: 86
 Профиль | | #1 Добавлено: 18.03.06 14:14
не понятно, что тебе надо
можно запустить cmd, чтоб его не видели, как окно....

Ответить

Номер ответа: 2
Автор ответа:
 Softer



ICQ: 203660381  

Вопросов: 29
Ответов: 205
 Web-сайт: hware.org.ua
 Профиль | | #2
Добавлено: 18.03.06 15:05
неа... Мне нада чтобы стандартная прога Ping показывала свои рез-ты в мое окно...

Ответить

Номер ответа: 3
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 18.03.06 15:36
Читай статью на этом сайте про перенаправление вывода из консоли

Ответить

Номер ответа: 4
Автор ответа:
 Softer



ICQ: 203660381  

Вопросов: 29
Ответов: 205
 Web-сайт: hware.org.ua
 Профиль | | #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-сайт: hunger.ru
 Профиль | | #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-сайт: hunger.ru
 Профиль | | #7
Добавлено: 18.03.06 19:09
HACKER, а это тут причём?

Ответить

Номер ответа: 8
Автор ответа:
 Softer



ICQ: 203660381  

Вопросов: 29
Ответов: 205
 Web-сайт: hware.org.ua
 Профиль | | #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-сайт: hware.org.ua
 Профиль | | #10
Добавлено: 20.03.06 16:19
Спасибо всем! Я пошел другим путем - теперь моя программа пингует сама.

Ответить

Номер ответа: 11
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #11
Добавлено: 22.03.06 10:24
лучше уж пример CyRax смотреть, чем статью :) имхо (и тоже на этом сайте)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам