Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
ВнизУважаемые Мастера, как можно перехватить консольный вывод. Найти похожие ветки
← →
Mitrofan (2002-02-21 12:12) [0]К примеру, запускаем из своей программы с помощью функции CreateProcess(...) какое-то консольное приложение, которое выводит некую информацию. И как эту информацию заполучить в свою программу, например в Memo ее выводить ???
Заранее спасибо. Андрей.
← →
Виктор Щербаков (2002-02-21 12:14) [1]Смотри описание структуры STARTUPINFO.
← →
Mitrofan (2002-02-21 20:08) [2]В Msdn я нашел такую вещь
typedef struct _STARTUPINFO {
DWORD cb;
LPTSTR lpReserved;
LPTSTR lpDesktop;
LPTSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
}
И если я правильно думаю, то наверно это hStdOutput, т.е. хэнд окна куда надо выводить. Неужели я прав ? :) Или заблуждаюсь.
← →
Виктор Щербаков (2002-02-22 10:15) [3]Это хэндл, возвращаемый функцией CreateFile.
← →
Mitrofan (2002-02-22 14:53) [4]Я че то недопонимаю, что этот хэндл означает и для чего он нужен.
Могу ли я написать следующее и будет ли оно правильное
hStdOutput := Memo1.Handle;
Будет ли консольный вывод "валиться" в мое Memo ???
← →
Юрий Зотов (2002-02-22 15:06) [5]Нет, не будет.
Вы должны:
1. Вызвать CreateFile, указав в Security Attributes, что хэндл будет наследуемым.
2. Полученный хэндл прописать в hStdOutput
3. При вызове CreateProcess указать bInheritHandles = True.
После этого вывод пойдет на устройство, созданное CreateFile (конечно, это не обязательно дисковый файл) - вот оттуда Вы и должны перебрасывать его в Memo своим кодом. И в конце работы нужно освободить 3 хэндла.
← →
Miwa (2002-02-23 01:32) [6]А если запустить твою програмку консольную примерно так
,
your_prog >> resfile.txt
а потом просто считать результирующий файл?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.003 c