| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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. На этом форуме сидят профи СПАСИБО!!! |