Главная страница
    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.46 MB
Время: 0.004 c
6-90345
Basaev
2001-11-04 04:44
2002.01.28
Как узнать подключон компютер к интернету в данный момент


4-90408
Dufe Rob
2001-11-27 01:03
2002.01.28
Открытие файла программой...


7-90400
TSR
2001-10-11 15:41
2002.01.28
Порты


7-90387
Media
2001-10-12 09:19
2002.01.28
MP3 - Головная боль


3-90193
AndyDu
2001-12-22 20:19
2002.01.28
Как програмно пометить необходимые записи в DBGrid, чтоб потом пользовать SelectedRows ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский