Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Как читать из консоли? |
Автор: Гость_Чайник 16.10.2004, 07:39 |
Привет всем! Можно ли GUI-проге запустить дочерний консольный процесс (не свой консоль!) и из него (из его STD_OUTPUT_HANDLE) читать данные? Помогите, плиз! |
Автор: chipset 16.10.2004, 16:09 |
CreateProcess в LPSTARTUPINFO есть параметр что то типа output, туда пропиши хэндл файла и синхронизься с ним ![]() Добавлено @ 16:10 Всё остальное RTFMSDN |
Автор: Гость_Чайник 16.10.2004, 16:50 | ||
chipset , cделал я как ты и говорил, но... :’( при первом же нажатии клавиши прога console.exe падает. А почему – хз. Помоги, плиз!
|
Автор: chipset 16.10.2004, 17:06 |
srt.dwFlags = STARTF_USESTDHANDLES; зачем? |
Автор: Гость_Чайник 16.10.2004, 18:58 |
без него тоже никакого результата ![]() |
Автор: p0s0l 16.10.2004, 19:42 | ||
Я делал это через трубы ![]() Вместо CreateFile сделай CreatePipe - получишь 2 хэндла - для ввода и вывода. Их и укажи в srt. При создании pipe'а, нужно обязательно указать SECURITY_ATTRIBUTES. Будет примерно так:
Читать из пайпа - ReadFile... |
Автор: Гость_Чайник 17.10.2004, 10:53 | ||
Пишу в pipe так, но ничего консоль не получает, хотя WriteFile возвращает TRUE. Я что-то не так делаю, но что именно?
|
Автор: p0s0l 17.10.2004, 12:49 | ||
Дык, надо было сразу сказать, что ты кроме того, что хочешь заполучить вывод, еще хочешь и ввод свой сделать... В таком случае надо создавать 2 пайпа: один - для ввода другой - для вывода У каждого пайпа, как ты уже замител, есть 2 хэндла: один - для записи в пайп, другой - для чтения из пайпа
|
Автор: Гость_Чайник 17.10.2004, 15:06 |
p0s0l , СПАСИБО! Теперь работает, я всё понял ![]() Вот токо одна беда - в консоль отправляется из pipe все то, что стоит до первого пробела!!! |
Автор: p0s0l 17.10.2004, 15:23 | ||
Пожалуйста! ![]()
|
Автор: Guest 17.10.2004, 18:20 | ||
я уже сам разобрался ![]() надо было в консоли принимать данные примерно так:
P.S. На этом форуме сидят профи СПАСИБО!!! |