Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
14-1100242672
MBo
2004-11-12 09:57
2004.11.28
Пятница - новые похождения Васи Пупкина и другие задачки ;)


14-1099944915
Knight
2004-11-08 23:15
2004.11.28
Как в Пиратах Карибского моря...


1-1100100244
Oleg_
2004-11-10 18:24
2004.11.28
persistent в файл


4-1097839781
UVV
2004-10-15 15:29
2004.11.28
Com порт, срочно помогите, pls, вторую неделю бьёмся ...


14-1100199534
123
2004-11-11 21:58
2004.11.28
Linux





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