Форум программистов, компьютерный форум, киберфорум
Delphi
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для Genius94
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121

Программная архивация данных, не отображать процесс на экране

12.12.2014, 11:56. Показов 1279. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Нужна Ваша помощь. Архивирую программно папку с помощью winrar, но вот меня смущает то что процесс архивации виден на экране.но мне хотелось бы чтоб этот процесс не отображался. вот как я архивирую данные.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sRarPsw:='PASSWORD'; //пароль для архива
sFileName:='tools\*.txt'; //имя архивируемого файла
sPathWinRAR := 'winRAR.exe';//где находиться WinRar.exe
sFileNameRar:='log'; //имя архива без .rar
sPathRar:='d:\'; //куда писать архивный файл
 
FillChar( Si, SizeOf( Si ) , 0 );
with Si do
begin
cb := SizeOf( Si);
dwFlags := startf_UseShowWindow;
wShowWindow := 4;
end;
s:=sPathWinRAR+' a -ep1 -hp'+sRarPsw+' '+sPathRar+sFileNameRar+' '+sPathRar+sFileName;
Createprocess(nil,PChar(s),nil,nil,false,Create_default_error_mode,nil,nil,si,p);//запускаем процесс архивирования
Waitforsingleobject(p.hProcess,infinite); //и ждем его окончания
sFileName:='TextOut.rar'; //имя архивного файла
а также может кто знает как целую папку закинуть в архив а не только файлы в ней.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2014, 11:56
Ответы с готовыми решениями:

Программная архивация и разархивация данных
Привет всем. Подскажите плиз функции VBS для упаковки и распаковки файлов и директорий. Ну т.е. я знаю что указываются пути, задается...

Отображать процесс поиска файла(ов)
Доброй ночи! Есть код, который рекурсивно ищет файлы. Вот он:) Procedure FilesSearch(StartDir : String; Mask : String; Var List :...

Отображать процесс при ajax подгрузке
Всем привет! Как отображать процесс (анимацию) при аяксе beginForm знаю, а вот как если у меня запрос к контролеру в скрипте: ...

6
 Аватар для Zombi_sib
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
12.12.2014, 17:13
Delphi
1
2
3
4
5
wShowWindow := 4;
 
замени на
 
wShowWindow := 0;
Добавлено через 6 минут
я обычно запускаю rar.exe
0
 Аватар для Genius94
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
12.12.2014, 17:18  [ТС]
Цитата Сообщение от Zombi_sib Посмотреть сообщение
wShowWindow := 4;
замени на
wShowWindow := 0;
не помогает.Все равно процесс архивации отображается.
0
 Аватар для Zombi_sib
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
12.12.2014, 17:26
добавь два ключа -r -ibck
0
 Аватар для Genius94
1 / 1 / 0
Регистрация: 21.11.2011
Сообщений: 121
12.12.2014, 17:54  [ТС]
Цитата Сообщение от Zombi_sib Посмотреть сообщение
добавь два ключа -r -ibck
добавил эти ключи теперь он стал запрашивать прежде чем зархивировать файл ввести пароль.и так же отображается архивация(((
0
 Аватар для Zombi_sib
379 / 332 / 89
Регистрация: 26.05.2010
Сообщений: 750
12.12.2014, 18:17
пользуюсь таким кодом у меня все работает, окно не выводиться пароль устанавливается без запроса
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function WinExecAndWait32(CommandLine: string; ShowWindow: Word): DWORD;
var
  zAppName: array[0..512] of Char;
  StartupInfo: TStartupInfo;
  ProcessInfo: TProcessInformation;
begin
  StrPCopy(zAppName, CommandLine);
  FillChar(StartupInfo, Sizeof(StartupInfo), #0);
  StartupInfo.cb := Sizeof(StartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := ShowWindow;
  if not CreateProcess(nil,
    zAppName,             { pointer to command line string }
    nil,                  { pointer to process security attributes }
    nil,                  { pointer to thread security attributes }
    False,                { handle inheritance flag }
    CREATE_NEW_CONSOLE or { creation flags }
    NORMAL_PRIORITY_CLASS,
    nil,                  { pointer to new environment block }
    nil,                  { pointer to current directory name }
    StartupInfo,          { pointer to STARTUPINFO }
    ProcessInfo)          { pointer to PROCESS_INF }
  then
    Result := DWORD(-1)   { failed, GetLastError has error code }
  else
  begin
     WaitForSingleObject(ProcessInfo.hProcess, infinite);
     GetExitCodeProcess(ProcessInfo.hProcess, Result);
     CloseHandle(ProcessInfo.hProcess);
     CloseHandle(ProcessInfo.hThread)
  end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   WinExecAndWait32('C:\Program Files\Winrar\winrar.exe a -r -ep1 -hpeklmn -ibck -y D:\l\xxx.rar D:\l\*', 0);
end;
0
3 / 3 / 0
Регистрация: 13.02.2015
Сообщений: 169
13.12.2015, 13:00
Zombi_sib,А какой пароль устанавливается на архив?

Добавлено через 12 минут
Извеняюсь, уже разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.12.2015, 13:00
Помогаю со студенческими работами здесь

IdFTP, отображать процесс копирования в ProgressBar-е
подскажите как мне отобразить процесс копирования в прогресс баре? нужно как-то узнать сколько на данный момент скопировано байт, как это...

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

Как отображать процесс копирования файлов в ProgressBare?
Подскажите как отображать процесс копирования файлов в ProgressBare. На этом сайте была ссылка на пример...

C++ Аналитик: постоянно анализировать данные и отображать выводы на экране
Всем привет! Столкнулся с необходимостью написания программы, которая будет постоянно анализировать данные и отображать свои выводы на...

Java3D, отрендеренную картинку нужно сохранять в файл на диск, а не отображать на экране
Вот есть простой стандартный пример: import java.applet.Applet; import java.awt.BorderLayout; import java.awt.Frame; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru