Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.28;
Скачать: CL | DM;

Вниз

isql.exe или как выполнить команду в консольном приложении... ?   Найти похожие ветки 

 
Hmm   (2004-10-13 19:52) [0]

Я пытаюсь из своего приложения запустить другую, консольную программу (isql.exe - может кто сталкивался, входит в пакет IB 6.x) и выполнить в ней команду, например help (есть тама такая).
Команды можно вводить непосредственно в окно этой программки сразу после запуска.
Вот, что делаю Я:

shellexecute(handle,nil,"c:\isql.exe" ,"help",nil,sw_restore);
(собственно, пробовал также createprocess и winexec... результат тот же)

программа ругается на то, что не сушествует такого файла(!!!) HELP =( Видимо я что-то не так делаю, вопрос что ?
Другими словами: как передать запушенному консольному приложению НЕ путь к файлу (для открытия), а именно команду (вписать текст в окно приложения)?

ЗЫ: Заранее спасибо за ответы.


 
Jel ©   (2004-10-13 19:58) [1]

Если программа не пердусматривает этого явно (как в твоем случае) при создании процесса можно переопределить для него стандартный поток ввода (и вывода если нужно) и убедившись, что процесс стартовал вывести в этот поток нужный текст (help).


 
Hmm   (2004-10-13 20:08) [2]

каким образом..?! какой функцией (набором функций) можно переобпределить этот самый поток ввода, и далее, каким образом вывести этот текст (help)?


 
homosapienz   (2004-10-13 20:15) [3]

Тоже давно интересуюсь этой проблемой, дайте пожалуйста рабочий код взаимодействия с иоей программы с консольной.
Там вроде нужно через CreateProcess а дальше как то через Pipe
(или что-то типа того). Пожалуйста дайте пример.


 
Jel ©   (2004-10-13 21:15) [4]

Посмотри этот пример http://delphibase.endimus.ru/?action=viewfunc&topic=winappctrl&id=10317

Он читает вывод консольного приложения, но после незначительной творческой переработки может отправлять и ввод. Принцип там показан, остальное дело техники.


 
homosapienz   (2004-10-13 22:26) [5]

Jel, Спасибо это уже кое что, но не совсем понятно как работать в диалоговом режиме? Допустим я ввожу команду ftp она требует ввести какие то данные. Так как мне отловить событие ожидания ввода, тем более что моя программа подвисает ожидая завершения ftp? И как поддерживать сессию приглашение-ввод? может есть мысли?


 
homosapienz   (2004-10-19 22:27) [6]

Мастера помогите может кто знает?


 
Polevi ©   (2004-10-20 11:32) [7]

FAQ на этом сайте


 
Анонимщик ©   (2004-10-20 12:17) [8]

Попробуй подавать не просто строку "isql.exe", а, например, вот такую:
"isql -i simpleVDB1.sql"



Страницы: 1 вся ветка

Текущий архив: 2004.11.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.057 c
1-1100342588
xkiller
2004-11-13 13:43
2004.11.28
TImage


1-1100245698
Unknown user
2004-11-12 10:48
2004.11.28
Копирование значений свойств из одного объекта в другой


14-1099933480
zokzok
2004-11-08 20:04
2004.11.28
Технология


8-1093770518
DimOn2
2004-08-29 13:08
2004.11.28
Avi


14-1100199962
злобный Луарвик
2004-11-11 22:06
2004.11.28
Как всунуть прогу?