Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WinRAR запускается через раз [D7, WinXP]


VitAngel ©   (2007-02-14 17:44:00) 

Вечер Добрый!

Проблема такая: использую функцию ShellExecute для архивирования нескольких файлов, но она почему то запускает её через раз. Пожалуйста, подскажите в чём проблема...

Запускаю так:
ShellExecute(0,'open','WinRAR.exe',PChar('a -y -- Archive\Archive.rar @Archive\Archive.txt'),nil,SW_SHOW);


Углук   (2007-06-13 19:56:00) [1]


> а как узнать что архивация закончена?
> мне надо заархивировать файлы, а потом их удалить. но если
> делаю попорядку команды, то накладка происходит. что делать?
>
> <Цитата>


1. В цикле архивируем файлы. Цикл заканчивается
2. Закрываем WinRar
3. Удаляем файлы.


Dimaxx   (2007-06-13 16:44:00) [2]

У меня помню траблы были в аналогичном примере. Программе никак не передавались параметры ком. строки. Поставил пробел в начале строки параметров и все заработало.


Валькирия   (2007-06-13 15:19:00) [3]

а как узнать что архивация закончена?
мне надо заархивировать файлы, а потом их удалить. но если делаю попорядку команды, то накладка происходит. что делать?


Сергей М.   (2007-02-16 16:26:00) [4]


> VitAngel   (16.02.07 16:01) [7]


> на какие-то доли секунды форма архивации запускается


Т.е. суслика ты таки видишь ?

Ну и какого хрена ты тогда утверждаешь, что "через раз" ?
Запускается же ? Запускается ведь !!

А дальше чеши репу про параметры запуска)


VitAngel   (2007-02-16 16:01:00) [5]

Дело в том, что на какие-то доли секунды форма архивации запускается и тут же исчезает...не понятно почему...


Сергей М.   (2007-02-16 15:29:00) [6]


> запускает её через раз


"Ты суслика видишь ? И я не вижу. А он есть !" (анекд.)

ShellExecute - функция.
И только анализ возвращаемого ею результатадостоверно укажет, "запустился" ли твой WinRAR. А ты его неанализируешь, значит ты не вправе судить о  его якобы "незапуске" лишь на основании того, что ты не видишь ни WinRAR-процесса в списке процессов, ни его окна на раб.столе.


VitAngel   (2007-02-16 13:51:00) [7]

Что ты имеешь в виду под "ждёт завершение процесса"???


Alex Konshin   (2007-02-16 12:32:00) [8]

Вообще-то странно для паковки файлов использовать его UI вариант.
И тем более странно использовать для этого ShellExecute. Товарищ ленится, а потом удивляется, почему не работает. Кстати, а товарищ ждет завершения процесса?


Германн   (2007-02-15 02:43:00) [9]

И ещё важен, имхо, в приведённом примере пятый параметр!


Германн   (2007-02-15 01:45:00) [10]


> umbra ©   (14.02.07 18:54) [1]
>
...
> Если включить телепатор, то: нет ли в списке файлов, в именах
> которых (или в путях к которым) есть пробелы?
>

Сумлевается мой телепатор, однако, насчёт пробелов. Список файлов формируется как набор строк, а строку всегда можно однозначнопрочитать без зависимости от наличия в ней пробелов! Имхо.
Больше всего меня настораживает то, что третьим параметром функции ShellExecute идёт не полноеимя выполняемого файла. А у WinRar есть настройки - какую директорию считать текущей (current) при запуске.


umbra   (2007-02-14 18:54:00) [11]

в приведенном коде проблем нет :)
Если включить телепатор, то: нет ли в списке файлов, в именах которых (или в путях к которым) есть пробелы?


Наверх

Титульная страница Поиск, карта сайта Написать письмо