![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Раскрытие, затем удаление архива... [D7, WinXP]
Владимир © (2006-05-18 16:08:00)Нужен код, который раскрывает архива RAR, а затем удаляет архив. Я написал, но проблема в том, что удаление файла срабатывает раньше чем раскрытия архива...
Как обойти данную проблему ? Заранее благодарен
shellExecute(Form1.Handle,
nil,
Pchar('WinRAR'),
Pchar('e -o+ -df '+path+filename+' '+ Path),
nil,
SW_SHOWNOACTIVATE);
If FileExists(Path+fileName) then DeleteFile(Pchar(Path+FileName))
Игорь Шевченко (2006-05-18 16:50:00) [1]
> как можно определить запущенная какая-то программа закончила
> уже свои дела или нет....
CreateProcess + WaitForSignleObject
ShellExecuteEx + WaitForSingleObject
Владимир (2006-05-18 16:38:00) [2]Спасибо.
Но как отследить ???, закончил работу WINRAR или нет...Задержка таймером мне не подходит, у меня много таких архивов будет и какое время ставить для раскрытия одного архива ? 10с, 30с, 1 час ?
Размеры архива от 1кб до 100мб..
winrar или нет это другой вопрос.
Мне нужно узнать: как можно определить запущенная какая-то программа закончила уже свои дела или нет....
iXT (2006-05-18 16:26:00) [3]НУ и чего тут удивительного!
Пока у тебя запускается сам WINRAR файл и удаляется.
А если WINRAR вообще не установлен!?
1. Используй не WINRAR, а компоненты работающие с rar-архивами.
2. Если уж без WINRAR никак, то смотри пока не исчезнет процесс
3. (Ну если программа "просто так" то поставь задержку таймером на удаление. Кажется WINRAR для работы создает временную папку и далее работает с ней (но не факт при работе из командной строки), И вообще несоветую его (3)