Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 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
Я тут ещё подумал...

При создании архива ВинРаром (под Виндовз), он показывает оставшееся время и у него ПрогрессБар бежит. Может можно сам ВинРар скрыть, а время и прогресбар отловить и вставить в своей проге?


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)