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

Вниз

Перехват экранного вывода DOS приложений   Найти похожие ветки 

 
valery_f   (2001-11-27 13:02) [0]

А не слышал ли кто нибудь про такую возможность? Интересуют две вещи:
1) не плодить отдельное окно при запуске DOS приложения;
2) поймать вывод на экран на предмет его разбора и, возможно, отображения "в нужном месте и в нужном виде".


 
Delirium   (2001-11-27 15:41) [1]

Я тебе на thevalery@yahoo.com отослал


 
Delirium   (2001-11-27 15:54) [2]

Увы, письмо вернулось, дай рабочий адрес, пришлю компонент с "перехватом" и "концом работы"


 
Виктор Щербаков   (2001-11-27 16:05) [3]

Пример запуска extract.exe - DOS распаковщика CAB файлов с перенаправлением консольного вывода в файл:

procedure TForm1.Button1Click(Sender: TObject);
var
SI: TStartupInfo;
PI: TProcessInformation;
begin
//Заполняем структуру инициализации процесса
ZeroMemory(@SI, SizeOf(SI));
SI.cb := SizeOf(SI);
SI.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;
SI.wShowWindow := SW_HIDE;

//Перенаправляем вывод в файл
SI.hStdOutput := CreateFile(PChar(ExtractFilePath(Application.ExeName) + "Output.tmp"), GENERIC_READ or GENERIC_WRITE,
FILE_SHARE_READ, nil, CREATE_ALWAYS,
FILE_FLAG_OVERLAPPED, 0);

//Запускаем
if CreateProcess(nil, "extract.exe", nil, nil, False, 0, nil, nil, SI, PI) then
begin
CloseHandle(PI.hThread);
WaitForSingleObject(PI.hProcess, INFINITE); //ждем
CloseHandle(PI.hProcess);
end;
// Закрываем файл
CloseHandle(SI.hStdError);
end;


 
valery_f   (2001-11-27 17:33) [4]

> ...дай рабочий адрес...
жду на uspekh@vlink.kharkov.ua

> Пример запуска extract.exe
виснет, зараза, на WaitForSingleObject (пытался запустить pkzip)


 
Delirium   (2001-11-27 18:32) [5]

Отправил


 
Виктор Щербаков   (2001-11-28 10:15) [6]

to valery_f
а pkzip с какой коммандной строкой запускал?
т.е. может он у тебя просто консольного ввода дожидается,
потому и кажется, что виснет.
Попробуй не скрывать окно - SI.wShowWindow := SW_SHOWNORMAL;


 
valery_f   (2001-11-28 11:32) [7]

> Попробуй не скрывать окно - SI.wShowWindow := SW_SHOWNORMAL;
Уже пробовал - DOS сессия завершается и пишет в заголовке окна "finished", и пока не закроешь - назад не возвращается. При SW_HIDE, соответственно, даже закрывать-то нечего - только прервать тремя кнопками.


 
Виктор Щербаков   (2001-11-28 11:51) [8]

В свойствах pkzip попробуй поставить галку
"Закрывать окно по завершении сеанса работы".


 
valery_f   (2001-11-28 13:17) [9]

> В свойствах pkzip...
А как это сделать? Я ведь пускаю EXE а не PIF или LNK.


 
Delirium   (2001-11-28 20:22) [10]

Так-как из "Кладовки" DOSCommand убрали, выложил его (чуть продправленый) у себя www.master-brain.boom.ru



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

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

Наверх




Память: 0.49 MB
Время: 0.009 c
6-90337
erik
2001-11-07 12:54
2002.01.28
Bug Indy IdFTP, Event OnStatus?


7-90386
vik
2001-10-06 14:47
2002.01.28
Как отформатировать HDD


1-90288
KingSize
2002-01-10 17:57
2002.01.28
Открытие


1-90247
Dmitriy_R
2002-01-09 13:56
2002.01.28
(IntToStr & StrToInt) Undeclared Identifier Почему?


1-90258
АНАТОЛИЙ
2001-12-24 15:25
2002.01.28
DELPHI-VBScript(JavaScript)