| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Проблема в вызове внешних программ !!! |
| Автор: Sasha 14.6.2002, 19:56 | ||
| Привет ребята !!! Взялся помочь другу разобраться с программой. Вот небольшой пример нажатия кнопки << ДАЛЕЕ>>
Мой друг пытается сделать инсталятор в качестве практикума. Примерно так: Выбираем путь к инсталяции программы, потом нажимаем кнопку <<ДАЛЕЕ>> в листинге в (15) строке указывается что unrar.exe находится в текущем каталоге подставляем ключи, файл для распаковки например setup.rar, и путь для распаковки. В результате у нас получается вот такая строка: st:=C:\Project\unrar.exe x -o+ setup.rar C:\TMP\TURBOPASCAL\ В строке 18. подставляем переменную st в функцию winexec и в результате что мы получаем ?. Да ничево программа не выполняется. Мне кажется что ошибка в строке 18. Невызывается внешняя программа. Ребята подскажите свое мнение |
| Автор: Vit 14.6.2002, 21:16 |
| Используй ShellExecute или CreateProcess. Функция WinExec - уже 7 лет существует только для поддержки совместимости с программами написанными для Win3.1. ИМХО, она сейчас не должна применятся вообще, а при такой сложной коммандной строке тем более. Примеры по применению ShellExecute или CreateProcess уже приводились на форуме не однократно. |
| Автор: Song 15.6.2002, 09:04 |
| Т.е. как не выполняется? Не запускается вообще? Не делает то что нужно ? Ещё может как ? |
| Автор: Goph 15.6.2002, 16:40 | ||
Song сильно ты умный... |
| Автор: Vit 17.6.2002, 02:03 |
| Только не надо доходить до оскорблений, да Song действительно сильный программист, и я не пойму почему это кого-то должно задевать, тем более его вопрос совершенно корректен. Почему-то люди любят писать фразу "не работает!" - на что мне хочется всегда ответить, "а может Вы компьютер забыли включить?", на форуме Вам никто не обязан неичего отвечать, тем более писать за Вас код, если у Вас что-то не работает, то 95% по выявлению причин должны делать Вы сами, а не говорить не работает, заставляя задавать кучу наводящих вопрососв как именно не работает... Вы привели 20 строк текста, а надо ли, если вы думаете что не работает WinExec, так и спросите "почему у меня WinExec('c:\currdir\unrar.exe x -o FILE_PROG edit1text', sw_minimize); генерит ошибку (какую)? не компиллируется (с какой ошибкой)? Не выполняется? И не надо обижаться на уточняющие вопросы, или давайте я вам для примера брошу 20 строк моего кода и скажу "не работает?" - хотите попробовать? |
| Автор: Goph 17.6.2002, 15:59 |
| Просто в большенстве случаев не разбирая он именно так и отвечает, даже если задан вопрос исчерпывающий... А вообшем Vit с тобой нельзя не согласится |
| Автор: Song 20.6.2002, 19:55 | ||
Хмм.. не правда Действительно "не работать" может по всякому |