|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1270 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
Отправлено: 22:20, 06-02-2016 | #1291 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать Цитата djbionicl:
Скрытый текст
Введите в googl'e "Как отследить изменения в системе после установки программы?"
|
|
------- Отправлено: 22:30, 06-02-2016 | #1292 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
Путь берется из ключа реестра деинсталлятора. В справке в разделе "Константы" есть небольшое описание получения значения. » еще раз спасибо! С бэкапом небольшая загвоздка выходит. В папке Data находятся файлы для бэкапа - Data/Файлы После бэкапа имеем такую структуру - Backup/Data/Файлы. А вот после деинсталляции получается так - Data/Data/Файлы, а должно Data/Файлы, т.е. файлы возвращаются в папке. На всякий случай кусок кода, возможно, я что-то неправильно делаю Скрытый текст
[Files] Source: "F:\Data\*.assets"; DestDir: "{app}\Data"; BeforeInstall: "BackupFile()"; Flags: ignoreversion ;Source: "{app}\2.txt"; DestDir: "{app}"; BeforeInstall: "BackupFile()"; Flags: ignoreversion ;Source: "{app}\1.cjstyles"; DestDir: "{app}\cjstyles"; BeforeInstall: "BackupFile()"; Flags: ignoreversion ;Source: "{app}\1.rtf"; DestDir: "{app}\txt"; BeforeInstall: "BackupFile()"; Flags: ignoreversion ;Source: "{app}\1.zip"; DestDir: "{app}\zip"; BeforeInstall: "BackupFile()"; Flags: ignoreversion [code] type #ifdef UNICODE #define A "W" PChar = PAnsiChar; #else #define A "A" #endif TSHFileOpStruct = record Wnd: HWND; wFunc: UINT; pFrom: PChar; pTo: PChar; fFlags: Word; fAnyOperationsAborted: BOOL; hNameMappings: HWND; lpszProgressTitle: PChar; 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'; procedure BackupFile(); var file, backFile, backpath: string; begin if FileExists(ExpandConstant(CurrentFileName)) then begin File := ExpandConstant(CurrentFileName); backpath := file; StringChangeEx(backpath, ExpandConstant('{app}'), '', True); backFile := ExpandConstant('{app}\Backup') + backpath; ForceDirectories(ExtractFilePath(backfile)); RenameFile(file, backfile); end; end; 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 := PChar(_fromDir); fos.pTo := PChar(_toDir); end else begin _fromDir:= _fromDir + SR.Name + #0#0; _toDir := _toDir + SR.Name + #0#0; fos.pFrom := PChar(_fromDir); fos.pTo := PChar(_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 := PChar(_fromDir); fos.pTo := PChar(_toDir); Result := (0 = ShFileOperation(fos)); end; end; procedure RestoreBackup(backDir: string); begin BackupDir(backDir, ExpandConstant('{app}'), True); DelTree(backDir, true, true, true); end; procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); begin if CurUninstallStep = usdone then begin RestoreBackup(ExpandConstant('{app}\Backup\')); end; end; |
Последний раз редактировалось a.k.a. Rasputin, 07-02-2016 в 01:40. Отправлено: 01:19, 07-02-2016 | #1293 |
Забанен Сообщения: 96
|
|
Отправлено: 09:07, 07-02-2016 | #1294 |
Ветеран Сообщения: 517
|
Профиль | Отправить PM | Цитировать Цитата vadjliss:
Или полностью удалите секцию [Tasks] из скрипта, если в ней нет других задач. Создание ярлыка в секции [Icons] оформите следующим образом: Более подробно можно почитать в справке. |
|
Отправлено: 09:31, 07-02-2016 | #1295 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать vadjliss, Удалите:
[Tasks] Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked В секции [Icons] найдите похожую строку: в содержимом найдите Tasks: desktopicon и удалите, т.е чтоб вместо получилось |
Отправлено: 09:39, 07-02-2016 | #1296 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
Отправлено: 10:08, 07-02-2016 | #1297 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата djbionicl:
Если вам нужно в скрипт импортировать содержимое реестра, то воспользуйтесь инструментом Converter: ссылка на сообщение есть в первом сообщении данной темы внутри спойлера "Дополнительные программы для Inno Setup". Если не увидели, вот вот прямая ссылка на сообщение #86. Или используйте инструмент Inno Script Studio. Скачайте и установите Inno Script Studio. Откройте скрипт с помощью Inno Script Studio. Переместите курсор мыши на секцию "Registry/Реестр" Нажмите по "Registry/Реестр". Переместите reg-файл в пустую область. |
|
Отправлено: 10:47, 07-02-2016 | #1298 |
Ветеран Сообщения: 860
|
Профиль | Отправить PM | Цитировать
Цитата a.k.a. Rasputin:
|
|||||
------- Отправлено: 11:24, 07-02-2016 | #1299 |
Забанен Сообщения: 96
|
спасибо большое парни |
Отправлено: 11:56, 07-02-2016 | #1300 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|