Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Взаимодействие с консольным приложением 
:(
    Опции темы
Некто
Дата 4.11.2005, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 11.5.2004

Репутация: нет
Всего: нет



Здравствуйте, вот возник такой вопрос, как на VB решить такую задачу: программа должна запустить консольное приложение и получать все даные выводимые им на экран, и отправлять туда данные, которые консольное приложение запрашивает ввести с клавиатуры. То есть программа должна как бы перенаправить поток ввода и вывода консольного приложения к себе. Заранее спасибо.
PM MAIL   Вверх
Voldemar2004
Дата 5.11.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Этот код написал boevik:
Код

Option Explicit    
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long    
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long    
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long    
Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long    
Const INFINITE = &HFFFF      '  Infinite timeout    
Const SYNCHRONIZE = &H100000    
Private Sub Command1_Click()    
Dim oFSO As New FileSystemObject    
Dim sText As String    
Dim sDir() As String    
Dim ProcID As Long, hProcess As Long    
Dim Ret As Long    
    'построение файла bat    
    oFSO.CreateTextFile("c:\dir.bat", True).Write ("dir c:\ /b/s>" & "c:\dir.dat")    
    'запуск файла на исполнение    
    ProcID = Shell("c:\dir.bat", vbMaximizedFocus)    
    'ожидание окончания запуска файла    
    hProcess = OpenProcess(SYNCHRONIZE, 0, ProcID)    
    If hProcess <> 0 Then    
        Call WaitForSingleObject(hProcess, INFINITE)    
        Call GetExitCodeProcess(hProcess, Ret)    
        Call CloseHandle(hProcess)    
    End If    
    'чтение файла результата    
    sDir = Split(oFSO.OpenTextFile("c:\dir.dat").ReadAll, vbNewLine)    
    'уничтожение следов    
    If oFSO.FileExists("c:\dir.bat") Then oFSO.DeleteFile "c:\dir.bat", True    
    If oFSO.FileExists("c:\dir.dat") Then oFSO.DeleteFile "c:\dir.dat", True    
End Sub


Тема "Графическая оболочка в VB6" на
http://forum.vingrad.ru/index.php?act=Sear...opics&hl=&st=50 середина топика. Не знаю, может быть поможет. smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Некто
Дата 5.11.2005, 20:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 50
Регистрация: 11.5.2004

Репутация: нет
Всего: нет



Не думаю что мне это подойдет. Мне надо несколько раз получить данные из консоли и передать данные то есть не только через командную строку, но и просто когда приложение запрашивает ввод с клавиатуры. Читал в том топике, что можно подключить консоль к проекту и есть специальные ActiveX. Можно по подробнее?
PM MAIL   Вверх
Voldemar2004
Дата 6.11.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



В API TextViewer - посмотри на ShellExecute и другие функции.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.