Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Inno Setup .:[все вопросы]:.

Закрытая тема
Настройки темы
[архив] Inno Setup .:[все вопросы]:.

Новый участник


Сообщения: 6
Благодарности: 2

Профиль | Отправить PM | Цитировать


Изменения
Автор: volk1234
Дата: 27-08-2009
Описание: перевел в архив
Лимит страниц.
Тема закрыта.
продолжаем тут:

Inno Setup. Обсуждение установщика

Скрипты Inno Setup. Помощь и советы



Полезные ресурсы:
Официальный сайт| Inno Setup 5.2.3 RU
Русская справка |Зеракало 1| Зеракало 2
ISTool 5.30 |Русификатор
Русификатор ISTool |Зеркало 1|Зеркало 2
Inno Setup Script Generator |Зеркало 1
Unpaker 2.1 от 21.04.2009 - распаковывает инсталляторы, созданные с помощью Inno Setup, начиная с версии 2.0.18 по 5.2.4.
InnoUnpaker 2.6b3 [от valeron87]- можнет просмотривать содержание CompiledCode.bin
Unpaker 0.23 - расширенная китайская версия 2008-08-08 ( модификация)
Unpacker 0.24 | Зеркало 1 | Зеркало 2 - Inno Setup Unpacker (innounp plus) - расширенная версия распаковщика инсталляторов Inno Setup начиная с версии 2.0.8 по 5.3.0 Beta. Поддерживаются версии Unicode. Русифицирована. Последний релиз: 0.24 [23.05.2009]
Набор Restools
Restools - расширенная версия Inno Setup от китайских разработчиков, добавляет вашему инсталлятору новые возможности по оформлению, а также более удобный редактор скриптов (требуется наличие установленного Preprocessor'а).
Последние версии разработок от Restools:
InnoCompiler090319_English - в него входят файлы: Compil32.exe и Templates.dat;
Inno_ISCmplr_Setup090302 - в него входят файлы, лучше из папки InnoSetup_FullVCL: setup.e32, ISCmplr.dls, ISCmplr.dll и SetupLdr.e32.
InnoCompiler090319_Russian - Русский перевод (80%) от tem000 - NEW !

QuickStart Pack - Inno Setup + Preprocessor (последняя версия ispack-5.2.4-dev)
"Всё в одном" от unikum111
читать дальше »

Цитата unikum111:
В сборку входят следующие компоненты:
Inno Setup compiler 5.2.2 русская версия;
ISTool 5.2.1 русская версия;
Inno Script Generator английская версия;
Inno Setup Unpacker Explorer 1.0 аглийская версия;
Примечание: в Inno Setup Unpacker Explorer 1.0 заменён innounp.exe на тестовую версию 2.0, так что распаковывает инсталляторы вплоть до версии 5.2.2.
Есть возможность выбора компонентов.
Скачать: ifolder, RapidShare, iBox (Размер: 5.34 Mb).»



Полезные мелочи для Inno Setup:

- Converter v.0.1.2 - конвертор REG- файлов в формат скриптов Inno от Serega_ -новая версия
- Как убрать страницу приветствия (wpWelcome) в мастере установки приложения:
- Примеры скриптов на паскале
- Inno Setup Addon 0.07 For Total Commander
- Параметры командной строки инсталляторов InnoSetup:

Код: Выделить весь код
/SP-
Отключает страницу "Эта программа установит... Вы хотите продолжить?" инсталятора. 
Выполнится только если DisableStartupPrompt секции [Setup] равна yes. 

/SILENT, /VERYSILENT  
Установка в ускоренном или очень ускоренном режиме. При установке в ускоренном режиме 
окно мастера и фоновое окно мастера не отображаются, отображается только окно прогресса. 
При очень ускоренной установке окно прогресса тоже не отображается. Остальная установка 
проходит как обычно - отображаются сообщения об ошибках в ходе установки, страница 
приветствия (если ее отображение не отменено директивой DisableStartupPrompt или 
параметром '/SP-' командной строки).

Если после установки необходима перезагрузка, команды '/NORESTART' не дано и установка 
проходит в ускоренном режиме, появится сообщение "Перезагрузить компьютер?". Если режим 
установки очень ускоренный, система перезагрузится не спрашивая.

/LOG 
Указывает инсталятору создать log-файл в папке TEMP для подробного отчета о действиях 
и событиях в секции [Run], предпринятых в ходе установки. Применяется при отслеживании 
ошибок. Например, если вы подозреваете, что файл не был удален, хотя должен был, 
log-файл сообщит, что файл былдействительно пропущен и почему. 

log-файлу присваивается уникальное имя на базе текущей даты. (Существующие файлы не 
перезаписываются и не дополняются). 
Информация, содержащаяся в log-файле, техническая и поэтому не может быть понята 
пользователем. 

/LOG="filename" 
Параметр похож на /LOG, но в отличие от него позволяет указать фиксированный
путь/имя файла для log-файла. Если файл с указанным именем уже существует, он будет 
заменен. Если файл не может быть создан, установка прервется и выдаст сообщение 
об ошибке.

/NOCANCEL  
Не дает пользователю прервать установку, отключая кнопку Отменить и игнорируя клики на 
кнопке Закрыть. Используется в комбинации с '/SILENT' или '/VERYSILENT'. 

/NORESTART 
Указывает инсталятору не перезагружать компьютер даже если это необходимо. 

/RESTARTEXITCODE=exit code  
Задает инсталятору код, который он должен возвратить, если необходима перезагрузка. 
Используется с '/NORESTART'.
См. также Коды выхода инсталятора. (кому интерестно, могу выложить или же доступно в хелпе)

/LOADINF="filename" 
Указывает инсталятору загрузить параметры установки из указанного файла после проверки 
командной строки. Этот файл может быть подготовлен с помощью '/SAVEINF='command.
Не забудьте ставить кавычки при использовании имен, содержащих пробелы. 

/SAVEINF="filename" 
Указывает инсталятору сохранять параметры установки в указанный файл.
Не забудьте ставить кавычки при использовании имен, содержащих пробелы. 

/LANG=language 
Задает используемый язык. language задает имя языка, заданного в параметре секции 
[Languages]. При использовании параметра /LANG появляется диалог Выбор языка установки.

/DIR="x:\dirname" 
Меняет имя папки, заданное по умолчанию, на странице Выбор папки назначения. 
Должен быть задан полный путь. 

/GROUP="folder name" 
Меняет имя папки на странице Выбор папки меню Пуск. Если директива 
DisableProgramGroupPage секции [Setup] равна yes, этот параметр командной строки 
игнорируется. 

/NOICONS 
Указывает инсталятору проверять, выбрана ли команда Не создавать значков на странице 
Выбор папки меню Пуск. 

/COMPONENTS="comma separated list of component names" 
Меняет выбраные по умолчанию компоненты. В этом случае параметр командной строки 
указывает инсталятору менять тип установки на Выборочный. 

/PASSWORD=password  Задает пароль. Если не указана директива Password секции [Setup], 
этот параметр игнорируется. Если введен неправильный пароль, параметр 
также игнорируется.

Отправлено: 21:42, 17-03-2005

 

Ветеран


Сообщения: 989
Благодарности: 38

Профиль | Отправить PM | Цитировать


Serega, подскажите пожалуйста!
Здесь Вы привели пример шифрование инсталлятора.
Но при попытке скомпилировать, просит IScrypt.dll.
Где её можно взять? Дайте пожалуйста ссылку.

Отправлено: 18:08, 17-07-2009 | #1141



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата МИШАНЧИК:
Где её можно взять? »
На этой странице.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:19, 17-07-2009 | #1142


Ветеран


Сообщения: 989
Благодарности: 38

Профиль | Отправить PM | Цитировать


Serega, Большое Вам спасибо!
И ещё вопрос. Она должна лежать в папке Инно?
Вопрос снят. Закинул в папку Инно, вс работает.
Спасибо.

Отправлено: 18:23, 17-07-2009 | #1143


Старожил


Сообщения: 190
Благодарности: 30

Профиль | Отправить PM | Цитировать


boss911,
У меня почему-то вносится раз через раз и меняется вносимое значение

Отправлено: 20:01, 17-07-2009 | #1144


Аватара для Rosich

Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


Прошу помощи у меня возникла проблема, в скрипте не работает бекап файлов:
в папку Backup файлы копируются, а при деинсталляции подмененные файлы просто удаляются, из бекапа не восстанавливаются. Вот мой скрипт, даю его с небольшими сокращениями и жду помощи.
читать дальше »

Код: Выделить весь код
 

#define TIME_FOR_VIEW 4
#include "SHFileOperation.iss"

[Setup]
AppName=The Sims™ 3
UninstallDisplayName={#SetupSetting("AppName")}
AppVerName=1.0.631
DefaultDirName={code:GetInstallPath}
UninstallFilesDir={pf}\InstallShield Installation Information\{{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}
DefaultGroupName=Electronic Arts\The Sims™ 3
AppID={{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}
Compression=lzma/ultra64
InternalCompressLevel=ultra64
DiskSliceSize=1561610132
ReserveBytes=0
MinVersion=0,5.01.2600sp1
AppVersion=1.0.631
VersionInfoVersion=1.0.631
VersionInfoCompany=Electronic Arts, Inc.
VersionInfoCopyright=Copyright © 2005-2009 Electronic Arts Inc.
AppPublisherURL=http://www.TheSims3.com
AppCopyright=Copyright © 2005-2009 Electronic Arts Inc.
AppPublisher=Electronic Arts
VersionInfoTextVersion=2009-06-19-1744 (by codebuilder on SIMS-BUILD141)
SetupIconFile=E:\Мои документы\Мои Проекты\EA Games\Electronic Arts\Sims3.ico
UninstallDisplayIcon={app}\Game\Bin\eauninstall.ico
ComponentsListTVStyle=true
ComponentsListBtnImageFile=btnimage.bmp
LanguageDetectionMethod=none
ShowLanguageDialog=no
DirExistsWarning=no
UserInfoPage=false
SolidCompression=true
DiskSpanning=true
TimeStampsInUTC=true
AlwaysShowDirOnReadyPage=true
AlwaysShowGroupOnReadyPage=true
ShowTasksTreeLines=true
AlwaysUsePersonalGroup=true
FlatComponentsList=false
AllowNoIcons=true
AllowRootDirectory=true
RestartIfNeededByRun=false
DisableDirPage=false
DisableProgramGroupPage=true
ChangesEnvironment=true

[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom
Name: compact; Description: Компактная установка

[Components]
Name: sims3; Description: Установить патчь ''NoCD'' для The Sims™ 3; Types: compact custom full
Name: resce; Description: Установить файл ''Resource.cfg''; Types: compact custom full
Name: sicoca; Description: Перезагрузить скины, удалив файл кэша; Types: compact custom full; Flags: disablenouninstallwarning
Name: bdshop; Description: Создание персонажей в The Sims 3; Types: full; Flags: checkablealone Collapsed
Name: bdshop\ncssnr; Description: Обнаженное тело в разделах ''Ночное белье'' и ''Купальные костюмы''; Types: full; Flags: exclusive
Name: bdshop\ntabfma; Description: Обнаженное тело во всех разделах игры The Sims 3; Types: full; Flags: exclusive
Name: bdshop\wom; Description: Обнаженное тело взрослой женщины; Flags: checkablealone; Types: full
Name: bdshop\wom\bbcm; Description: Прорисованная женская грудь; Types: full
Name: bdshop\wom\nbnbtr; Description: Невидимый бюстгальтер и топлес для женщин; Types: full; Flags: checkablealone Collapsed
Name: bdshop\wom\nbnbtr\nudetop; Description: Топлес для женского тела; Types: full
Name: bdshop\wom\nbnbtr\nude; Description: Бюстгальтер без бретелек; Types: full; Flags: checkablealone Collapsed
Name: bdshop\wom\nbnbtr\nude\braal; Description: Невидимый бюстгальтер (обычный бюстгальтер будет недоступен); Types: full; Flags: exclusive
Name: bdshop\wom\nbnbtr\nude\bram; Description: Бюстгальтер без бретелек в разделе ''Ночное белье''; Types: full; Flags: exclusive
Name: bdshop\itdtsr; Description: Текстуры тела с блеском кожи и лобковыми волосами; Types: full; Flags: exclusive
Name: bdshop\itdstsr; Description: Текстуры тела с блеском кожи без лобковых волос; Types: full; Flags: exclusive checkablealone  Collapsed
Name: bdshop\itdstsr\insksh; Description: Натуральный блеск кожи; Types: full
Name: bdshop\itdstsr\motefama; Description: Мужское лицо в деталях; Types: full
Name: bdshop\itdstsr\motefafe; Description: Женское лицо в деталях; Types: full
Name: bdshop\itdstsr\iywdet; Description: Женское тело в деталях; Types: full; Flags: checkablealone
Name: bdshop\itdstsr\iywdet\ffuba; Description: Женское тело, грудь без сосков; Types: full; Flags: exclusive
Name: bdshop\itdstsr\iywdet\fnion; Description: Женское тело, грудь с сосками; Types: full; Flags: exclusive
Name: bdshop\itdstsr\iywmal; Description: Мужское тело в деталях; Types: full; Flags: checkablealone
Name: bdshop\itdstsr\iywmal\mwiha; Description: Мужское тело с сосками и волосами на теле; Types: full; Flags: exclusive
Name: bdshop\itdstsr\iywmal\mfuba; Description: Мужское тело с сосками, без волос на теле; Types: full; Flags: exclusive
Name: gmmod; Description: Моды для игры The Sims 3; Types: full; Flags: checkablealone Collapsed
Name: gmmod\mdem; Description: Обнаженное тело взрослого мужчины; Types: full; Flags: checkablealone Collapsed
Name: gmmod\mdem\mesh1; Description: Взрослый мужчина без волос на теле; Types: full; Flags: exclusive
Name: gmmod\mdem\mesh0; Description: Взрослый мужчина с волосами на теле; Types: full; Flags: exclusive
Name: gmmod\mdem\dmenr; Description: Пенис для взрослого мужского тела; Types: full; Flags: checkablealone Collapsed
Name: gmmod\mdem\dmenr\mesh2; Description: Пенис в состоянии эрекции; Types: full; Flags: exclusive
Name: gmmod\mdem\dmenr\mesh3; Description: Замена основной части тела; Types: full; Flags: exclusive
Name: gmmod\mdem\dmenr\mesh4; Description: Замена всего мужского тела; Types: full; Flags: exclusive
Name: gmmod\inteen; Description: INTEEN 3 MOD с обновлением; Types: full; Flags: checkablealone Collapsed
Name: gmmod\inteen\enab; Description: INTEEN 3 MOD - включить романтические опции; Types: full
Name: gmmod\inteen\updat; Description: Обновление для INTEEN 3 MOD; Types: full
Name: gmmod\inteen\tabmp; Description: Taboo Mod + Polygamy - включает полигамию; Types: full
Name: gmmod\inteen\ubta; Description: Uber Taboo + Polygamy - полигамные связи со всеми; Types: full
Name: gmmod\alamft; Description: Материнство для подростков; Types: full
Name: gmmod\alamft; Description: Woohoo + беременность и брак для подростков; Types: full
Name: gmmod\unpt; Description: Патч Антицензор; Types: full
Name: sims; Description: Готовые персонажи для The Sims 3; Types: full; Flags: checkablealone Collapsed
Name: sims\pahi; Description: Пэрис Хилтон; Types: full

[Tasks]
Name: src; Description: Сохранить резервную копию файлов; Components: sims3 gmmod\inteen\tabmp gmmod\inteen\ubta gmmod\inteen\updat gmmod\unpt

[Files]
Source: InnoCallback.dll; Flags: dontcopy
Source: images\Image_*.bmp; Flags: dontcopy
Source: descctrl.dll; DestDir: {tmp}; Flags: dontcopy
Source: {app}\Game\Bin\eauninstall.ico; DestDir: {app}\Game\Bin; Flags: uninsneveruninstall external dontcopy
Source: ..\Electronic Arts\The Sims 3\Resource.cfg; DestDir: {app}; Flags: ignoreversion; Components: resce
; Бекап файлов в папке с игрой
; Source: {app}\Game\Bin\gameplay.package; DestDir: {app}\Game\Bin; Flags: external ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\inteen\tabmp gmmod\inteen\ubta gmmod\inteen\updat
; Source: {app}\Game\Bin\Shaders_Win32.precomp; DestDir: {app}\Game\Bin; Flags: external ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\unpt
; Source: {app}\Game\Bin\TS3.exe; DestDir: {app}\Game\Bin; Flags: external ignoreversion; BeforeInstall: CreateBackup; Components: sims3
; Taboo Mod + Polygamy enables the same as INTEEN 3
Source: ..\Sims 3\Game Mods\Inteen 3\Taboo__Polygamy_UPDATED\Sanati's no jealousy mod (to be used in conjunction with TeenPregnancy mod).package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\inteen\tabmp
Source: ..\Sims 3\Game Mods\Inteen 3\Taboo__Polygamy_UPDATED\TeenPregnancyNoJealousy (needs Sanati's no jealousy mod to work).package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\inteen\tabmp
Source: ..\Sims 3\Game Mods\Inteen 3\Taboo__Polygamy_UPDATED\gameplay.package; DestDir: {app}\Game\Bin; Flags: ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\inteen\tabmp
; Uber Taboo + Polygamy is the same as Taboo + Polygamy
Source: ..\Sims 3\Game Mods\Inteen 3\Uber_Taboo__Polygamy_UPDATED\TeenPregnancyVers3.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\inteen\ubta
Source: ..\Sims 3\Game Mods\Inteen 3\Uber_Taboo__Polygamy_UPDATED\gameplay.package; DestDir: {app}\Game\Bin; Flags: ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\inteen\ubta
; INTEEN 3 MOD - UPDATED
Source: ..\Sims 3\Game Mods\Inteen 3\Inteen_3_-_UPDATED\TeenPregnancyVers3.package; DestDir: {app}\Mods\Packages; Flags: replacesameversion; Components: gmmod\inteen\updat
Source: ..\Sims 3\Game Mods\Inteen 3\Inteen_3_-_UPDATED\gameplay.package; DestDir: {app}\Game\Bin; Flags: ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\inteen\updat
Source: ..\Sims 3\Game Mods\The Uncensored Patch\Shaders_Win32.precomp; DestDir: {app}\Game\Bin; Flags: ignoreversion; BeforeInstall: CreateBackup; Components: gmmod\unpt
Source: ..\Sims 3\TS3.exe; DestDir: {app}\Game\Bin; Flags: ignoreversion; BeforeInstall: CreateBackup; Components: sims3
; All Adult Maternity For Teens
Source: ..\Sims 3\Game Mods\Teen Woohoo + Pregnancy-Marriage\gameplay.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\alamft
; Это не в бекапе INTEEN 3 MOD - d3dx9_31.dll
Source: ..\Sims 3\Game Mods\Inteen 3\d3dx9_31\d3dx9_31.dll; DestDir: {app}\Game\Bin; Flags: ignoreversion; Components: gmmod\inteen\enab
Source: ..\Sims 3\Game Mods\Inteen 3\d3dx9_31\d3dx9_31.dll; DestDir: {app}\Game\Bin; Flags: ignoreversion; Components: gmmod\inteen\updat
Source: ..\Sims 3\Game Mods\Inteen 3\d3dx9_31\d3dx9_31.dll; DestDir: {app}\Game\Bin; Flags: ignoreversion; Components: gmmod\inteen\tabmp
Source: ..\Sims 3\Game Mods\Inteen 3\d3dx9_31\d3dx9_31.dll; DestDir: {app}\Game\Bin; Flags: ignoreversion; Components: gmmod\alamft
; Nude Bra and Nude Body Top Replacement
Source: ..\Sims 3\Body Shop\Body Types\Nude Bra and Nude Body Top Replacement\MTS_Inks71_nudebraAlphaHide.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: bdshop\wom\nbnbtr\nude\braal
Source: ..\Sims 3\Body Shop\Body Types\Nude Bra and Nude Body Top Replacement\MTS_Inks71_nudeBraMesh.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: bdshop\wom\nbnbtr\nude\bram
Source: ..\Sims 3\Body Shop\Body Types\Nude Bra and Nude Body Top Replacement\MTS_Inks71_nudeTop0.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: bdshop\wom\nbnbtr\nudetop
=======разрыв кода========
Source: ..\Sims 3\Game Mods\Teen Woohoo + Pregnancy-Marriage\TeenMarriage.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\alamft
Source: ..\Sims 3\Game Mods\Teen Woohoo + Pregnancy-Marriage\TeenPregnancyNoJealousy (needs Sanati's no jealousy mod to work).package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\alamft
Source: ..\Sims 3\Game Mods\Teen Woohoo + Pregnancy-Marriage\TeenPregnancyVers3.package; DestDir: {app}\Mods\Packages; Flags: ignoreversion; Components: gmmod\alamft
Source: ..\Sims 3\Sims\Celebrities & Real People\Female\Paris Hilton (sims3)\Paris Hilton_v2.Sims3Pack; DestDir: {userdocs}\Electronic Arts\The Sims 3\Downloads; Flags: ignoreversion uninsneveruninstall; Components: sims\pahi

[Icons]
Name: {group}\{cm:UninstallProgram,addons The Sims™ 3}; Filename: {uninstallexe}; WorkingDir: {app}\Game\Bin; IconFilename: {app}\Game\Bin\eauninstall.ico; IconIndex: 0

[InstallDelete]
Name: {userdocs}\Electronic Arts\The Sims 3\simCompositorCache.package; Type: files; Components: sicoca
Name: {app}\Mods.*; Type: dirifempty
Name: {app}\Mods\*.*; Type: dirifempty
Name: {app}\Mods\Packages.*; Type: dirifempty
Name: {app}\Resource.cfg; Type: files
Name: {app}\Game\Bin\d3dx9_31.dll; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudeTop0.package; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudeBraMesh.package; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudebraAlphaHide.package; Type: files
=======разрыв кода========
Name: {app}\Mods\Packages\tm-NudeFormalTop.package; Type: files
Name: {app}\Mods\Packages\tm-NudeSleepBottom.package; Type: files
Name: {app}\Mods\Packages\gameplay.package; Type: files


[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl

[CustomMessages]
UninstallProgram=Удалить %1

[Registry]
Root: HKCU; Subkey: Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder; Flags: deletekey noerror

[Run]
Filename: {app}\Game\Bin\Sims3Launcher.exe; Description: {cm:LaunchProgram,программу запуска игры The Sims™ 3} и установить дополнения; WorkingDir: {app}\Game\Bin; Flags: nowait skipifdoesntexist postinstall skipifsilent hidewizard

[UninstallDelete]
Name: {app}\Game\Bin\d3dx9_31.dll; Type: files
Name: {app}\Mods.*; Type: dirifempty
Name: {app}\Mods\*.*; Type: dirifempty
Name: {app}\Mods\Packages.*; Type: dirifempty
Name: {app}\Resource.cfg; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudeTop0.package; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudeBraMesh.package; Type: files
Name: {app}\Mods\Packages\MTS_Inks71_nudebraAlphaHide.package; Type: files
Name: {app}\Mods\Packages\afbottomnude_jonha.package; Type: files
Name: {app}\Mods\Packages\aftopnude_jonha.package; Type: files
Name: {app}\Mods\Packages\ambottomnude_jonha.package; Type: files
===========разрыв кода===========
Name: {app}\Mods\Packages\tm-NudeFormalTop.package; Type: files
Name: {app}\Mods\Packages\tm-NudeSleepBottom.package; Type: files
Name: {app}\Mods\Packages\gameplay.package; Type: files

[Code]
// Бекап файлов
function MoveFile(const srcFile, destFile: PChar): Integer;
external 'MoveFileA@kernel32.dll stdcall'; 

procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
  basePath := ExpandConstant('{app}\Game\Bin');
    srcFile := ExpandConstant(CurrentFileName);
    shortPath := srcFile;
   StringChangeEx(shortPath, basePath, '', True);
   destFile := ExpandConstant('{app}\Game\Bin\Backup') + shortPath;
 ForceDirectories(ExtractFilePath(destFile));
 MoveFile(PChar(srcFile), PChar(destFile));
end;
end;

procedure CurUninstallStepChanged1(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
begin
  MoveDir(ExpandConstant('{app}\Game\Bin\Backup\'), ExpandConstant('{app}\Game\Bin\Backup'));
  RemoveDir(ExpandConstant('{app}\Game\Bin\Backup\'));
end;
end;

// Скрипт устанавливает зеленый цвет выбора компонентов и различные эффекты
// Как изменять строки в секции [Components] (при выборе компонентов)
//    WizardForm.ComponentsList.ItemFontStyle[5] - порядковый номер строки компонентов, отражает название компонента в секции [Components]
//   [fsBold]      - полужирный шрифт
//   [fsItalic]    - курсив шрифта
//   [fsUnderline] - подчеркнутый шрифт
//   [fsStrikeOut] - зачеркнутый шрифт
//   WizardForm.ComponentsList.SubItemFontStyle[5] - порядковый номер размера компонента
//   Flags: Collapsed  - говорит компилятору, что по умолчанию эти компоненты свернуты
procedure InitializeWizard2();
begin
  WizardForm.ComponentsList.ItemFontStyle[0] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[1] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[2] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[3] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[6] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[10] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[14] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[18] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[21] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[24] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[25] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[28] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[32] := [fsBold];
  WizardForm.ComponentsList.ItemFontStyle[40] := [fsBold];

  WizardForm.ComponentsList.SubItemFontStyle[0] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[1] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[2] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[3] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[6] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[10] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[14] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[18] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[21] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[24] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[25] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[28] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[32] := [fsBold];
  WizardForm.ComponentsList.SubItemFontStyle[40] := [fsBold];
end;

//Запуск программы, проверка ключа в реестре
function GetInstallPath( AppID: String ): String;
var Path: String;
begin
 Path:= '';
 if not RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{C05D8CDB-417D-4335-A38C-A0659EDFD6B8}','InstallLocation', Path) then
        RegQueryStringValue(HKLM, 'SOFTWARE\Sims\The Sims 3','Install Dir', Path);
        Result := Path; 
end; 

function InitializeSetup() : Boolean;
begin
 Result := True;
 if (FileSearch('Game\Bin\TS3.exe', ExpandConstant('{code:GetInstallPath}')) = '') then
 begin
  MsgBox('Для установки этого дополнения требуется предварительная установка игры {#SetupSetting("AppName")}.' #13#13
         'Установите {#SetupSetting("AppName")}, после этого продолжите установку дополнения.' ,mbCriticalError , mb_Ok);
  Result:= False;
  exit;
 end
end;

// Слайд-шоу в окне инсталлятора
type
  TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:InnoCallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';

var
  TimerID: LongWord;
  currTime: Integer;
  SplashImage: TBitmapImage;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
   currTime := currTime + 1;
   case currTime of
   {#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_2.bmp')) end;
   2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_3.bmp')) end;
   3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_4.bmp')) end;
//   4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_5.bmp')) end;
//   5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_6.bmp')) end;
//   6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_7.bmp')) end;
//   7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_8.bmp')) end;
   end;
   if CurrTime = 3*{#TIME_FOR_VIEW} then CurrTime := -1;
//   if CurrTime = 7*{#TIME_FOR_VIEW} then CurrTime := -1;
end;

procedure DeInitializeSetup();
begin
 KillTimer(0, TimerID);
end;

procedure InitializeWizard3;
begin
  ExtractTemporaryFile('Image_1.bmp');
  ExtractTemporaryFile('Image_2.bmp');
  ExtractTemporaryFile('Image_3.bmp');
  ExtractTemporaryFile('Image_4.bmp');
//  ExtractTemporaryFile('Image_5.bmp');
//  ExtractTemporaryFile('Image_6.bmp');
//  ExtractTemporaryFile('Image_7.bmp');
//  ExtractTemporaryFile('Image_8.bmp');

  currTime := 0;
  SplashImage := TBitmapImage.Create(WizardForm);
  SplashImage.Top := 0;
  SplashImage.Left := 0;
  SplashImage.Width := WizardForm.MainPanel.Width;
  SplashImage.Height := WizardForm.Bevel.Top;
  SplashImage.Parent := WizardForm.InnerPage;
  SplashImage.Stretch := True;
  SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_1.bmp'));
  SplashImage.Hide; 

  WizardForm.ProgressGauge.Parent := WizardForm;
  WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY(12);
  WizardForm.ProgressGauge.Left := ScaleX(10);
  WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20);
  WizardForm.ProgressGauge.Height := 16;
  WizardForm.ProgressGauge.Hide;

  WizardForm.FileNameLabel.Parent := WizardForm;
  WizardForm.FileNameLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
  WizardForm.FileNameLabel.Left := ScaleX(10);
  WizardForm.FileNameLabel.Width := ScaleX(397);
  WizardForm.FileNameLabel.Hide;
end;

procedure CurPageChanged3(CurPageID: Integer);
var
   pfunc: LongWord;
begin
 if (CurPageID = wpInstalling) then
  begin
    pfunc := WrapTimerProc(@OnTimer, 5);
    TimerID := SetTimer(0, 0, 1000, pfunc);
    WizardForm.PageNameLabel.Visible:=false
    WizardForm.PageDescriptionLabel.Visible:=false
    WizardForm.InnerNotebook.Hide;
    WizardForm.Bevel1.Hide;
    WizardForm.MainPanel.Hide;
    WizardForm.PageNameLabel.Hide;
    WizardForm.PageDescriptionLabel.Hide;
    WizardForm.ProgressGauge.Show;
    WizardForm.FileNameLabel.Show;
    SplashImage.Show;
    WizardForm.CancelButton.Enabled :=True
    WizardForm.CancelButton.Top := WizardForm.Bevel.Top + ScaleY(100)
 end else
  begin
    WizardForm.ProgressGauge.Hide;
    SplashImage.Hide;
    WizardForm.FileNameLabel.Hide;
    if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
    begin
      WizardForm.InnerNotebook.Show;
      WizardForm.Bevel1.Show;
      WizardForm.MainPanel.Show;
      WizardForm.PageNameLabel.Show;
      WizardForm.PageDescriptionLabel.Show;
    end;
    If CurPageID=wpFinished then
  end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  CurUninstallStepChanged1(CurUninstallStep);
end;

procedure InitializeWizard();
begin
  InitializeWizard2();
  InitializeWizard3();
end

procedure CurPageChanged(CurPageID: Integer);
begin
  CurPageChanged3(CurPageID);
end;

Отправлено: 21:12, 19-07-2009 | #1145


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Rosich, внимательнее посмотрите на вашу процедуру CurUninstallStepChanged1. Прежде всего, MoveDir - не является стандартной функцией Inno и в вашем скрипте я её тоже не вижу и второе, если я правильно понял, MoveDir(ExpandConstant('{app}\Game\Bin\Backup\'), ExpandConstant('{app}\Game\Bin\Backup')), то вы пытаетесь переместить файлы из папки Backup в неё же.

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:54, 19-07-2009 | #1146


Аватара для Rosich

Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


Serega
Спасибо большое, за то, что ткнул меня носом в мою ошибку, все работает. Еще одна просьба как сделать так чтобы бекап файлов был автоматический, если выбран компонент и чтобы не было этого окна?

P. S.
Сразу оговорюсь если вырезать из кода скрипта строку:
begin
if IsTaskSelected('src') then
- ничего не будет работать, при установке бекап файлов идет, а при деинсталляции файлы на место не возвращаются, папка Backup не удаляется. То есть, как я понял строки:
begin
MoveDir(ExpandConstant('{app}\Game\Bin\Backup\'), ExpandConstant('{app}\Game\Bin'));
RemoveDir(ExpandConstant('{app}\Game\Bin\Backup\'));
- не работают.

Последний раз редактировалось Rosich, 20-07-2009 в 16:24.


Отправлено: 08:44, 20-07-2009 | #1147


Новый участник


Сообщения: 7
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вопрос к знатокам:

Как сделать новую страницу с двумя радиобаттонами "Быстрая установка" и "Выборочная установка", чтобы при выбранной быстрой установку кнопка далее вела сразу на страницу wpReady а выборочная - далее, ничего не меняя?

В-принципе, страницу с радиобаттонами я сделал, и функцию возвращения 0 или 1 в зависимости от выбора тоже, а вот сделать переходы не судьба) хэлп)

Отправлено: 12:49, 20-07-2009 | #1148


Ветеран


Сообщения: 1133
Благодарности: 581

Профиль | Отправить PM | Цитировать


Цитата Rosich:
как сделать так чтобы бекап файлов был автоматический, если выбран компонент »
Удалите секцию [Tasks] и исправьте зависимость в procedure CreateBackup от выбора дополнительной задачи, на зависимость выбора компонентов:
читать дальше »
Код: Выделить весь код
procedure CreateBackup;
var
  srcFile, destFile: string;
  basePath, shortPath: string;
begin
  if IsComponentSelected('sims3') or
     IsComponentSelected('gmmod\inteen\tabmp') or
     IsComponentSelected('gmmod\inteen\ubta') or
     IsComponentSelected('gmmod\inteen\updat') or
     IsComponentSelected('gmmod\unpt') then
    begin
      basePath := ExpandConstant('{app}\Game\Bin');
      srcFile := ExpandConstant(CurrentFileName);
      shortPath := srcFile;
      StringChangeEx(shortPath, basePath, '', True);
      destFile := ExpandConstant('{app}\Game\Bin\Backup') + shortPath;
      ForceDirectories(ExtractFilePath(destFile));
      MoveFile(PChar(srcFile), PChar(destFile));
    end;
end;


Цитата heNch1g:
а вот сделать переходы не судьба) »
Вам надо использовать функцию ShouldSkipPage
читать дальше »
Цитата из Справки:
·функция ShouldSkipPage(PageID: Integer): Boolean;

Мастер вызывает эту внешнюю функцию, чтобы определить, отображать ли дополнительную страницу (заданную в PageID), или нет. При значении True страница будет пропущена; при значении False страница может быть отображена

Обратите внимание: эта внешняя функция не вызывается для страниц wpWelcome, wpPreparing, и wpInstalling, ни для страниц, которые инсталлятор уже определил для пропуска (например, wpSelectComponents для установки, которая не содержит компонентов).
Пример использования:
Код: Выделить весь код
function ShouldSkipPage(CurPage: Integer): Boolean;
begin
  if Pos('/SP-', UpperCase(GetCmdTail)) > 0 then
    case CurPage of
      wpLicense, wpPassword, wpInfoBefore,
      wpUserInfo, wpSelectDir, wpSelectProgramGroup, wpInfoAfter:
        Result := True;
    end;
end;


Цитата Rosich:
RemoveDir(ExpandConstant('{app}\Game\Bin\Backup\')); - не работают. »
RemoveDir удаляет только пустые папки, значит ваша папка не пустая, для удаления не пустой папки, нужно использовать:
Код: Выделить весь код
DelTree(ExpandConstant('{app}\Game\Bin\Backup\'), True, True, True);

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Последний раз редактировалось Serega, 20-07-2009 в 17:24.

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:11, 20-07-2009 | #1149


Пользователь


Сообщения: 129
Благодарности: 76

Профиль | Отправить PM | Цитировать


Цитата heNch1g:
Как сделать новую страницу с двумя радиобаттонами "Быстрая установка" и "Выборочная установка", чтобы при выбранной быстрой установку кнопка далее вела сразу на страницу wpReady а выборочная - далее, ничего не меняя?
В-принципе, страницу с радиобаттонами я сделал, и функцию возвращения 0 или 1 в зависимости от выбора тоже, а вот сделать переходы не судьба) хэлп) »
вот, накидал пример
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.

Секция коде:

var
  NewPage: TWizardPage;
  NewRadio1, NewRadio2: TNewRadioButton;

procedure CreatePage();
var
  Header, Button1, Button2: TNewStaticText;
begin
  NewPage := CreateCustomPage(wpWelcome, 'Выбор типа установки', 'Эта программа позволяет выбирать тип установки');

  Header := TNewStaticText.Create(NewPage);
  Header.Parent := NewPage.Surface;
  Header.SetBounds(0, 0, WizardForm.InnerNotebook.Width, ScaleY(50));
  Header.Autosize := False;
  Header.WordWrap := True;
  Header.Caption := 'Эта программа позволяет выбирать тип установки, удобно будет как простым юзерам,  так и очень опытным хакерам, программерам и иже с ними.';

  NewRadio1 := TNewRadioButton.Create(NewPage);
  NewRadio1.Parent := NewPage.Surface;
  NewRadio1.SetBounds(ScaleX(20), ScaleY(60), ScaleX(250), ScaleY(14));
  NewRadio1.Caption := 'Быстрая установка';
  NewRadio1.Checked := True;

  Button1 := TNewStaticText.Create(NewPage);
  Button1.Parent := NewPage.Surface;
  Button1.SetBounds(ScaleX(40), ScaleY(80), WizardForm.InnerNotebook.Width - ScaleX(40), ScaleY(40));
  Button1.Autosize := False;
  Button1.WordWrap := True;
  Button1.Caption := 'Быстрая установка - предназначена для обычных юзеров.';

  NewRadio2 := TNewRadioButton.Create(NewPage);
  NewRadio2.Parent := NewPage.Surface;
  NewRadio2.SetBounds(ScaleX(20), ScaleY(120), ScaleX(250), ScaleY(14));
  NewRadio2.Caption := 'Выборочная установка';

  Button2 := TNewStaticText.Create(NewPage);
  Button2.Parent := NewPage.Surface;
  Button2.SetBounds(ScaleX(40), ScaleY(140), WizardForm.InnerNotebook.Width - ScaleX(40), ScaleY(40));
  Button2.Autosize := False;
  Button2.WordWrap := True;
  Button2.Caption := 'Выборочная установка - Предназначена для очень продвинутых юзеров, а так же тех, кто себя такими считает.';
end;

procedure InitializeWizard();
begin
  CreatePage();
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if PageID = wpSelectDir then
  begin
    if NewRadio1.Checked then
      Result := True;
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:28, 20-07-2009 | #1150



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Inno Setup .:[все вопросы]:.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Inno Setup. Прочие вопросы El Sanchez Автоматическая установка приложений 653 09-01-2023 20:13
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
[Архив] Твики реестра .: [все вопросы] :. Vadikan Автоматическая установка Windows 2000/XP/2003 1431 26-01-2008 08:51
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход