Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Как читать тескстовую информацию из консольных приложений ?   Найти похожие ветки 

 
SeNtiMeL ©   (2003-04-06 01:44) [0]

Например я запускаю консольное приложение (или MSDOS) (winexec, с параметром sw_hide). Мне надо прочитать строчки, которые выводит это приложение и вывести их у себя.
Как это можно сделать ?


 
Palladin ©   (2003-04-06 01:47) [1]

к команде на исполнение добавь > filename
например "dir /s > list.txt"
вывод перенаправится в файл list.txt
вот его после отработки программы и читай...


 
Chlavik ©   (2003-04-06 03:30) [2]

Используй ReadConsoleOutputCharacter ... Только для этого надо пулучить StdOut...


 
SeNtiMeL ©   (2003-04-06 03:34) [3]

Если не сложно можно пример по ReadConsoleOutputCharacter...
Я так понял нужно получить Handle консольного приложения ?


 
Chlavik ©   (2003-04-06 04:06) [4]

Нет Handle не консольного прилодения а handle потока вывода... что не так легко.. Я делал так сначала AllocConsole; - создаёт консоль, потом через GetStdHandle(STD_OUTPUT_HANDLE) узнаёш его тот самый handle а потом запускаеш свою прогу она будет юзать ту консоль которую ты создал. Ну и пока GetExitCodeProcess(Hprocess)=Stil_Active читаеш текст из консоли.... Кстати
Hproces надо узнавать из ProcessInformation (тебе прийдётся зарускать прогу через CreateProcess) можно конечно и по другому но зачем же? :) А на ReadConsoleOutputCharacter нажмёш F1...


 
Chlavik ©   (2003-04-06 04:08) [5]

Нет Handle не консольного прилодения а handle потока вывода... что не так легко.. Я делал так сначала AllocConsole; - создаёт консоль, потом через GetStdHandle(STD_OUTPUT_HANDLE) узнаёш его тот самый handle а потом запускаеш свою прогу она будет юзать ту консоль которую ты создал. Ну и пока GetExitCodeProcess(Hprocess)=Stil_Active читаеш текст из консоли.... Кстати
Hproces надо узнавать из ProcessInformation (тебе прийдётся зарускать прогу через CreateProcess) можно конечно и по другому но зачем же? :) А на ReadConsoleOutputCharacter нажмёш F1... ДА и еще тебе еще предстоит спрятать Окно консоли через ShowWindow(findwindow... - учитывай что на разных платформах разные класы консольных окон...


 
Palladin ©   (2003-04-06 11:59) [6]


> Chlavik © (06.04.03 04:08)

сколько нюансов... не проще ли ему просто перенаправлять поток вывода их консольной программы...

но если ему так надо то пусть мучается...


 
Дмитрий Баранов ©   (2003-04-06 12:48) [7]

При создании процесса функцией CreateProcess можно явно указать для запускаемого процесса хэндлы STDIN, STDOUT И STDERR.

Ув. MBo ссылает на http://master-brain.boom.ru/main.htm за классом TDosCommand. Качайте.


 
SeNtiMeL ©   (2003-04-07 03:20) [8]

Спасибо всем !



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
14-54802
Roman_kv
2003-03-31 13:28
2003.04.17
Update Delphi 7 где можно взять?


1-54671
vile
2003-04-04 14:21
2003.04.17
Перерисовка формы


1-54701
Archvile
2003-04-04 22:51
2003.04.17
ini-файл не в директории Windows


8-54765
CHiF
2003-01-15 12:16
2003.04.17
Как в PowerDraw е тайлить текстуру?


3-54498
val_123
2003-03-31 13:13
2003.04.17
TQuery