Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема в вызове внешних программ !!! Error !!! 
:(
    Опции темы
Sasha
Дата 14.6.2002, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 29.4.2002

Репутация: нет
Всего: нет



Привет ребята !!!
Взялся помочь другу разобраться с программой.
Вот небольшой пример нажатия кнопки << ДАЛЕЕ>>

Код
1.procedure TForm1.Button2Click(Sender: TObject);
2.var st :string;
3.REG,reguninst : TRegistry;
4.begin
5.  if not(directoryexists(edit1.Text)) then
6.    begin
7.      if messagedlg('Каталог '+edit1.Text+' не      
8. существует,'#10#13'создать?',mtconfirmation,[mbyes,mbno,mbcancel],0)
9. =mryes    then
10.    begin
11.      Forcedirectories(edit1.Text+'\');
12.    end
13.  else edit1.Text:='C:';
14. end;
15. st:=currdir+'\unrar.exe x -o+ '+FILE_PROG+' ' +edit1.text+ '\';
//16. showmessage(st);
//17. showmessage(edit1.text);
18. winexec(pchar(st),sw_minimize);
//19. st:='unrar.exe x -o+ '+FILE_dlls+' ' +'c:\windows';
//20. winexec(pchar(st),sw_minimize);


Мой друг пытается сделать инсталятор в качестве практикума.
Примерно так:
Выбираем путь к инсталяции программы, потом нажимаем кнопку <<ДАЛЕЕ>>
в листинге в (15) строке указывается что unrar.exe находится в текущем каталоге подставляем ключи, файл для распаковки например setup.rar, и путь для распаковки. В результате у нас получается вот такая строка:
st:=C:\Project\unrar.exe x -o+ setup.rar C:\TMP\TURBOPASCAL\
В строке 18. подставляем переменную st в функцию winexec и в результате что мы получаем ?.  Да ничево программа не выполняется.
Мне кажется что ошибка в строке 18.
Невызывается внешняя программа.

Ребята подскажите свое мнение  smile

Это сообщение отредактировал(а) p0s0l - 30.9.2005, 16:52
PM MAIL   Вверх
Vit
Дата 14.6.2002, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Используй  ShellExecute или CreateProcess. Функция WinExec - уже 7 лет существует только для поддержки совместимости с программами написанными для  Win3.1. ИМХО, она сейчас не должна применятся вообще, а при такой сложной коммандной строке тем более. Примеры по применению ShellExecute или CreateProcess уже приводились на форуме не однократно.


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Song
Дата 15.6.2002, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Т.е. как не выполняется? Не запускается вообще? Не делает то что нужно ? Ещё может как ?


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
Goph
Дата 15.6.2002, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 9.5.2002
Где: Кривой Рог

Репутация: нет
Всего: нет



Цитата(Song @ 15.6.2002, 09:04)
Т.е. как не выполняется? Не запускается вообще? Не делает то что нужно ? Ещё может как ?

Song сильно ты умный... :sneaky2


--------------------
Воображение гораздо важнее знаний!
                                (Эйнштейн)
PM MAIL ICQ   Вверх
Vit
Дата 17.6.2002, 02:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 1
Всего: 207



Только не надо доходить до оскорблений, да Song действительно сильный программист, и я не пойму почему это кого-то должно задевать, тем более его вопрос совершенно корректен. Почему-то люди любят писать фразу "не работает!" - на что мне хочется всегда ответить, "а может Вы компьютер забыли включить?", на форуме Вам никто не обязан неичего отвечать, тем более писать за Вас код, если у Вас что-то не работает, то 95% по выявлению причин должны делать Вы сами, а не говорить не работает, заставляя задавать кучу наводящих вопрососв как именно не работает... Вы привели 20 строк текста, а надо ли, если вы думаете что не работает WinExec, так и спросите "почему у меня

WinExec('c:\currdir\unrar.exe x -o FILE_PROG edit1text', sw_minimize);

генерит ошибку (какую)?
не компиллируется (с какой ошибкой)?
Не выполняется?

И не надо обижаться на уточняющие вопросы, или давайте я вам для примера брошу 20 строк моего кода и скажу "не работает?" - хотите попробовать?


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Goph
Дата 17.6.2002, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 304
Регистрация: 9.5.2002
Где: Кривой Рог

Репутация: нет
Всего: нет



Просто в большенстве случаев не разбирая он именно так и отвечает, даже если задан вопрос исчерпывающий...
А вообшем Vit с тобой нельзя не согласится :)


--------------------
Воображение гораздо важнее знаний!
                                (Эйнштейн)
PM MAIL ICQ   Вверх
Song
Дата 20.6.2002, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Sysman.ru
***


Профиль
Группа: Участник
Сообщений: 1095
Регистрация: 2.6.2002

Репутация: нет
Всего: 4



Цитата(HAspiring @ 17.6.2002, 16:59)
Просто в большенстве случаев не разбирая он именно так и отвечает, даже если задан вопрос исчерпывающий...

Хмм.. не правда  :D

Действительно "не работать" может по всякому :)


--------------------
Прежде чем сказать "Невозможно", подумай, прав ли ты
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0495 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.