|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.01.2013, 16:14 | #1 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
Работа с консолью в GUI приложении
Тема давно избитая, однако недавно столкнулся с проблемой при вводе команд. WriteFile работает нормально и даже возвращает кол-во записанных байт, однако ничего не происходит. В чём проблема?
P.S. Компилирую в Delphi XE3 под Win 7 x64. |
31.01.2013, 17:47 | #2 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
Неужели никто не поможет?
Хотя бы дайте знать в какую сторону копать. |
31.01.2013, 17:53 | #3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот где-то читал что пока пайп не закрыт до адресата его содержимое не дойдет...
Вообще-то могу ошибатся... http://delphiworld.narod.ru/base/console_in_out.html Может поможет. P.S. Цитата:
I'm learning to live...
Последний раз редактировалось Stilet; 31.01.2013 в 18:04. |
|
31.01.2013, 18:50 | #4 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
некоторые команды ждут CTRL+Z типа EOF
вроде #26 не помню
Не стесняемся, плюсуем!
|
31.01.2013, 21:02 | #5 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Может разрабы налажали?
|
31.01.2013, 23:35 | #6 |
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
|
В ReadStrFromChild для chBuf сначала память выделяется вызовом New, а освобождается - FreeMem.
После CreateProcess надо бы закрыть хэндл потока, если не нужен. А основная ошибка - что-то ты в WriteToChild перемудрил с PAnsiString. В таком виде в WriteFile надо передавать chBuf^[1]. А лучше вообще замени на AnsiString без указателей. |
01.02.2013, 13:52 | #7 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
Somebody,
пробовал менять на AnsiChar и убирать лишние преобразования. Толку нету. В общем решил написать всё с нуля и полностью разобраться с пайпами. P.S. Код в архиве не мой. На форуме, где его выложили, писали что он полностью рабочий. |
02.02.2013, 11:39 | #8 |
Пользователь
Регистрация: 30.01.2013
Сообщений: 10
|
Проблема была в IDE. После переустановки заработало нормально.
UPD: Написал небольшой модуль, для работы с консолями. Может кому-нибудь понадобиться. Последний раз редактировалось Anonymous1235; 02.02.2013 в 11:41. |
05.08.2014, 14:23 | #9 |
Новичок
Джуниор
Регистрация: 05.08.2014
Сообщений: 2
|
Спасибо большое за модуль, очень помог! Единственная проблема что вместо русского текста в консоль отправляются корозябины. И при работе с другими консольными приложениями консольный текст читается тоже корозябинами.
|
05.08.2014, 14:34 | #10 |
Форумчанин
Регистрация: 16.03.2013
Сообщений: 599
|
alextrof94$gmail.com
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с консолью | BomaN1 | Помощь студентам | 0 | 19.12.2011 20:41 |
GUI приложения. Работа с БД. | Airou | Помощь студентам | 0 | 24.03.2011 15:43 |
Работа с текстовыми строками в GUI приложениях | Anubys | Общие вопросы C/C++ | 7 | 24.03.2011 00:59 |
Работа с консолью | WindOfDark | Помощь студентам | 0 | 07.01.2011 15:21 |
Работа с консолью, вопросы | Hacker19_90 | Общие вопросы C/C++ | 21 | 24.12.2008 20:41 |