| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Error list & Progress Bar для WinRar.Console |
| Автор: h2o 19.8.2005, 11:19 |
| Знаю, знаю! Избитая и уже обмусоленая 100 раз тема! Но вот чего всё так и не получается: WinRarStart:='C:\Program Files\WinRAR\rar.exe a '+ArchivePath+'\'+date+'.rar '+DataPath; //это же для CMD: rar.exe a d:\Archive\19.08.2005.rar c:\ВажныеДанные Winexec(Pchar(WinRarStart), SW_SHOW); //Знаю что по лоховски, но это просто для проверки - запускается-ли. Вот скажем запутилось CMD с rar.exe и идёт архивация кучи файлов. При запуске этой операции, её вроде бы можно скрыть, тоесть она будет выполняться, а показываться не будет. Дак вот я и хочу, чтобы при выполнении операции-архивации небыло дурацкого чёрного окна, а всплывало окно по procedure TForm1.Button1Click(Sender: TObject); маленькое такое окошечко, состоящее из обьектов: 1. ProgressBar 2. Temer (время до конца архивации) 3. Окошко, типа Edit (или другое) для вывода туда содержимого окна CMD (тоесть всё что в СМД выводится: ошибки, сообщения, какие файлы архивятся и т.д.) А по окончанию выдовалось сообщение - "Готово типа всё!" http://forum.vingrad.ru/index.php?showtopic=51750 http://forum.vingrad.ru/index.php?showtopic=25023&unread=1&hl=stderr Из этих тем много полезного извлёк, а вот обьеденить??????? Ни как не получается! Может кто поможет. Да и ещё. если делать то что я хочу... вместо временного Winexec мне лучше использовать CreateProcess() или ShellExecute(). CreateProcess() - слишком сложно, но в статьях именно он используется, а вот ShellExecute() все рекомендуют, дак не могу запустить его. может кто знает где ХОРОШЕЕ описание с примерами его? Заранее спасибо! |
| Автор: h2o 19.8.2005, 11:29 |
| Ах да, ещё.... Я ведь Winexec(Pchar(WinRarStart), SW_SHOW) в цикле запускаю, в зависимости от количества выбранных папок. тоесть если выбрано 3 папки архивить, запускается 3 процесса независимых. А это плохо. Ведь нужно чтобы независимо от количества выбраных папок, на всё задание был 1 статус бар и 1 таймер...., тоесть несколько папок архивились по очереди, типа это архивится 1на папка, тоесть как-будто это 1 процесс (это чтобы был 1 статус бар и 1 таймер) и по WaitForProcessEnd или как там его выдовалось сообщение... Или как надо? |
| Автор: Girder 19.8.2005, 11:43 |
| http://forum.vingrad.ru/index.php?showtopic=36445&view=findpost&p=272124 |
| Автор: h2o 19.8.2005, 14:07 |
| полезно, вопрос № 3. Окошко, типа Edit (или другое) для вывода туда содержимого окна CMD (тоесть всё что в СМД выводится: ошибки, сообщения, какие файлы архивятся и т.д.) ... это хорошо подходит! Спасибо Girder! про остальное кто в курсе? |
| Автор: h2o 19.8.2005, 15:56 |
| Я тут ещё подумал... При создании архива ВинРаром (под Виндовз), он показывает оставшееся время и у него ПрогрессБар бежит. Может можно сам ВинРар скрыть, а время и прогресбар отловить и вставить в своей проге? |