Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
ВнизРаскрытие, затем удаление архива... Найти похожие ветки
← →
Владимир (2006-05-18 16:08) [0]Нужен код, который раскрывает архива 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))
← →
iXT (2006-05-18 16:26) [1]НУ и чего тут удивительного!
Пока у тебя запускается сам WINRAR файл и удаляется.
А если WINRAR вообще не установлен!?
1. Используй не WINRAR, а компоненты работающие с rar-архивами.
2. Если уж без WINRAR никак, то смотри пока не исчезнет процесс
3. (Ну если программа "просто так" то поставь задержку таймером на удаление. Кажется WINRAR для работы создает временную папку и далее работает с ней (но не факт при работе из командной строки), И вообще несоветую его (3)
← →
Владимир (2006-05-18 16:38) [2]Спасибо.
Но как отследить ???, закончил работу WINRAR или нет...Задержка таймером мне не подходит, у меня много таких архивов будет и какое время ставить для раскрытия одного архива ? 10с, 30с, 1 час ?
Размеры архива от 1кб до 100мб..
winrar или нет это другой вопрос.
Мне нужно узнать: как можно определить запущенная какая-то программа закончила уже свои дела или нет....
← →
Игорь Шевченко © (2006-05-18 16:50) [3]
> как можно определить запущенная какая-то программа закончила
> уже свои дела или нет....
CreateProcess + WaitForSignleObject
ShellExecuteEx + WaitForSingleObject
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.043 c