|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Новый участник Сообщения: 17
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
|
|
Отправлено: 12:41, 23-05-2015 | #631 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать
Цитата Николай_Николаич@vk:
Не знаю, почему у тебя так. |
|||||
------- Последний раз редактировалось kotyarko@fb, 23-05-2015 в 13:44. Отправлено: 13:38, 23-05-2015 | #632 |
Новый участник Сообщения: 17
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kotyarko@fb:
Еще случай, один раз инсталл пропустил папку с названием "1", при повторной попытке всетаки скопировал. |
|
Отправлено: 20:43, 23-05-2015 | #633 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Цитата Николай_Николаич@vk:
|
|
------- Отправлено: 20:48, 23-05-2015 | #634 |
Новый участник Сообщения: 17
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kotyarko@fb:
|
|
Отправлено: 21:04, 23-05-2015 | #635 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Цитата Николай_Николаич@vk:
|
|
------- Отправлено: 21:23, 23-05-2015 | #636 |
Новый участник Сообщения: 14
|
Профиль | Отправить PM | Цитировать Николай_Николаич@vk,
код
[setup] appname=test appvername=test 1.0 defaultdirname={sd}\test [code] type TSHFileOpStruct = record Wnd: HWND; wFunc: UINT; pFrom: PAnsiChar; pTo: PAnsiChar; fFlags: Word; fAnyOperationsAborted: BOOL; hNameMappings: HWND; lpszProgressTitle: PAnsiChar; end; const FO_MOVE = $0001; FO_COPY = $0002; FOF_SILENT = $0004; FOF_NOCONFIRMATION = $0010; FOF_FILESONLY = $0080; FOF_NOCONFIRMMKDIR = $0200; function SHFileOperation(const lpFileOp: TSHFileOpStruct):Integer; external 'SHFileOperation@shell32.dll stdcall'; function BackupDir(const fromDir, toDir: AnsiString; IsMove: Boolean): Boolean; var fos: TSHFileOpStruct; _fromDir, _toDir: AnsiString; SR: TFindRec; res: Boolean; begin ForceDirectories(toDir); if IsMove then fos.wFunc := FO_MOVE else fos.wFunc := FO_COPY; fos.fFlags := FOF_FILESONLY or FOF_SILENT or FOF_NOCONFIRMATION or FOF_NOCONFIRMMKDIR; _fromDir:= AddBackslash(fromDir); _toDir := AddBackslash(toDir); if (Length(fromDir) = Length(_fromDir)) then begin res:= FindFirst(_fromDir + '*', SR); try while res do begin if (SR.Name <> '') and (SR.Name <> '.') and (SR.Name <> '..') then begin if SR.Attributes = FILE_ATTRIBUTE_DIRECTORY then begin _fromDir:= _fromDir + SR.Name + #0#0; _toDir := _toDir + #0#0; fos.pFrom := PAnsiChar(_fromDir); fos.pTo := PAnsiChar(_toDir); end else begin _fromDir:= _fromDir + SR.Name + #0#0; _toDir := _toDir + SR.Name + #0#0; fos.pFrom := PAnsiChar(_fromDir); fos.pTo := PAnsiChar(_toDir); end; Result := (0 = ShFileOperation(fos)); _fromDir:= ExtractFilePath(_fromDir); _toDir:= ExtractFilePath(_toDir); end; res := FindNext(SR); end; finally FindClose(SR); end; end else begin _fromDir:= RemoveBackslashUnlessRoot(_fromDir) + #0#0; _toDir := RemoveBackslashUnlessRoot(_toDir) + #0#0; fos.pFrom := PAnsiChar(_fromDir); fos.pTo := PAnsiChar(_toDir); Result := (0 = ShFileOperation(fos)); end; end; procedure SendFileToSubFolders(ScanDir, InFile: string); var TFR: TFindRec; begin if FindFirst(AddBackslash(RemoveBackslash(ScanDir)) + '*', TFR) then try repeat if (TFR.Name <> '.') and (TFR.Name <> '..') then if TFR.Attributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then begin FileCopy(InFile, AddBackslash(RemoveBackslash(ScanDir)) + TFR.Name + '\' + ExtractFileName(InFile), False); end; until not FindNext(TFR); finally FindClose(TFR); end; end; procedure SendDirToSubFolders(ScanDir, InDir: string); var TFR: TFindRec; begin if FindFirst(AddBackslash(RemoveBackslash(ScanDir)) + '*', TFR) then try repeat if (TFR.Name <> '.') and (TFR.Name <> '..') then if (TFR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then BackupDir(AddBackslash(RemoveBackslash(InDir)), AddBackslash(RemoveBackslash(ScanDir)) + TFR.Name + '\' + ExtractFileName(InDir), false); until not FindNext(TFR); finally FindClose(TFR); end; end; procedure CurStepChanged(CurStep: TSetupStep); begin //Для файла // if CurStep = ssPostInstall then SendFileToSubFolders(ExpandConstant('{app}\1'), ExpandConstant('{sd}\spyhunter.log')); //Для папки if CurStep = ssPostInstall then SendDirToSubFolders(ExpandConstant('{app}\1'), ExpandConstant('{sd}\sh4ldr')); end; |
Отправлено: 22:03, 23-05-2015 | #637 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать сори что не в тему!!!
kotyarko@fb ящик ЛС полный! новые сообщения не уходят... |
Отправлено: 22:35, 23-05-2015 | #638 |
Новый участник Сообщения: 17
|
Профиль | Сайт | Отправить PM | Цитировать Кстати, не подскажете, давно искал пример двойного прогресс бара (Один по файловый, второй - общий прогресс), но никак не мог найти.
Есть ли таковой? |
Отправлено: 23:20, 23-05-2015 | #639 |
Новый участник Сообщения: 47
|
Профиль | Отправить PM | Цитировать Цитата Николай_Николаич@vk:
|
|
Отправлено: 02:06, 24-05-2015 | #640 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|