Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.004 c
1-32466
KiD
2002-02-21 19:03
2002.03.11
Как организовать вывод чисел по возрастанию(убыванию)?


14-32553
Иван Шихалев
2002-01-08 19:59
2002.03.11
А не посоветует ли кто :)


6-32526
Olfi
2001-12-23 19:15
2002.03.11
Нужен help по компоненту NMSMTP1


3-32421
KMM
2002-02-06 12:22
2002.03.11
Уважаемые Мастера, вопрос по SQL...


1-32447
SPVPasha
2002-02-22 17:40
2002.03.11
Как преобразовать текст OEM в Ansi, если в тексте есть псевдографика





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский