Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup: создание инсталляционных пакетов (Часть 15)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inno Setup
 
 

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
All version | Исходники проекта
 
Последние версии:
Inno Setup 6.3.3 [12.07.2024]
Скачать (5,37 Mb)
 
Inno Setup QuickStart Pack (Unicode) 6.1.2 [15.11.2020]
Скачать (4.23 Mb)
 
Что нового? | Что нового v.6x?  
 
Русский язык для Inno Setup v6.x
Скачать
 
Русский язык для Inno Setup v5.x
Скачать
 
Русская справка к версии - 5.6.1 (Зеркало) | 6.0.0 beta | 6.x
 
Последняя версия с поддержкой Windows 95 - 5.1.7
 
Последняя версия с поддержкой Windows 98/ME/NT4 - 5.4.3 ANSI
 
Последняя версия с поддержкой Windows 2000/XP/2003 - 5.6.1 (ANSI, Unicode)
 

Расширенная версия от китайских собратьев. Офсайт
Inno Setup Compiler 5.5.0-5.2 build 121216
Скачать (2.98 Mb) |Скачать (2.98 Mb) - зеркало GoogleDrive | Что нового
 
Inno ISCmplr Setup 5.5.1 build 120726
Скачать (1.73 Mb) | Что нового
 
Добавляет списку компонентов возможность сворачивать дочерние элементы. Содержит более удобный редактор, кроме того, компилятор имеет множество других возможностей и новых функций. На сайте автора также есть дополнительные библиотеки.
 
Русский язык для Inno Setup Enhanced (Restools) версии 5.4.x (ansi и unicode) от vadimsva
Скачать
 


Документация, FAQ, и различные примеры для Inno Setup - Здесь можно найти различную документацию, примеры, архивы веток InnoSetup для оффлайн просмотра, и т.д.
 
Дополнительные библиотеки для Inno Setup - InnoTools Downloader, коллекция DLL файлов, распаковка архивов 7-zip и FreeArc и т.д.
 
Дополнительные утилиты для Inno Setup - сюда входят различные распаковщики, надстройки над Inno Setup, различные генераторы скриптов, утилита объединения скриптов и т.д.
 
Скрипты инсталляторов для игр - В этом разделе можно найти различные обложки и скрипты инсталляторов для игр.  
 
Скрипт для добавления ярлыков в Game Explorer (работает только в Windоws 7)

Родственные темы:

Inno Setup плюс внешние упаковщики - обсуждение FreeArc+Inno, Precomp+Inno, 7zip+Inno и Inno+остальные внешние упаковщики.
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.

Примечание для всех участников

Правила топика посвященному Inno Setup  
 
Перед тем, как задать вопрос: Первый вариант: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Второй вариант: для экономии трафика и для более удобного поиска, скачайте оффлайн версию форума для просмотра в разделе Документация.
Большинство типовых задач уже решались, причем неоднократно!  
Пожалуйста, не захламляйте тему и используйте поиск, этим вы избавите тему от флуда!

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:29 13-10-2013 | Исправлено: boss911, 03:15 07-11-2024
trolltmn



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток господа, снова к вам на поклон за помощью.
 
Решил реализовать бэкап, но не по простому пути а через хитрую пятую точку, и столкнулся с проблемой.
 
имеем:

Код:
 
#define BackBTNCheck "{code:BackupButtonVis}"; проверка истиности наличия бэкапа
 
// секция проверки показа кнопки на стартовой странице
Function BackupButtonVis(BTNCheck: boolean): String;
begin
    BTNCheck := True;
    If FileExists(ExpandConstant('{app}\backup.7z')) then begin
    BTNCheck := False;
    end;
end;
// конец секции проверки показа кнопки на стартовой странице
 
    wpWelcome:
    begin
      ImgSetVisibility(work1,True);
      PageNameLabel.Show
      WelcomeLabel1.Show
      WelcomeLabel2.Show
      #if "True" == BackBTNCheck
      BtnSetVisibility(Backbtn,True);
      #elif "False" == BackBTNCheck
      BtnSetVisibility(UnBackbtn,True);
      #else
      BtnSetVisibility(Backbtn,True);
      #endif
    end;
 
 

 
при компилировании ошибок не выдает, но и работать не хочет, независимо от наличия в {app} архива backup.7z, переменная BackBTNCheck принимает значение "True". Подскажиет что делаю не так

Всего записей: 806 | Зарегистр. 30-01-2008 | Отправлено: 10:49 29-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
Код:
Source: {#GetEnv("ENVVAR")}\MyProg.exe; DestDir: {app}
 

 
- это работает, попробовали по аналогии
 
Source: "{#ExpandConstant('{userdocs}')}\Visual Studio 2005\Projects\SKIP.src\hlp\hlp.rus\kdstc.cnt"; DestDir: "{app}\"; Flags: restartreplace; Languages: rus
 
ругается на ExpandConstant

Всего записей: 1782 | Зарегистр. 26-06-2003 | Отправлено: 11:06 29-10-2013 | Исправлено: Gourmet, 11:08 29-10-2013
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята. С моей проблемой может кто ни будь помочь?

Всего записей: 345 | Зарегистр. 25-03-2013 | Отправлено: 13:08 29-10-2013
R3Pa4eK



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Gourmet
Source: "{userdocs}\Visual Studio 2005\Projects\SKIP.src\hlp\hlp.rus\kdstc.cnt"; DestDir: "{app}\"; Flags: restartreplace; Languages: rus

Всего записей: 963 | Зарегистр. 15-01-2011 | Отправлено: 16:25 29-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
R3Pa4eK

Цитата:
Source: "{userdocs}\Visual Studio 2005\Projects\SKIP.src\hlp\hlp.rus\kdstc.cnt"; DestDir: "{app}\"; Flags: restartreplace; Languages: rus
 

 
нет, такое не работает, мы с этого начинали, но просто константы в Source не раскрываются
 

Цитата:
Error: Source file "C:\Setup\{userdocs}\Visual Studio 2005\Projects\SKIP.src\hlp\hlp.rus\kdstc.cnt" does not exist.


Всего записей: 1782 | Зарегистр. 26-06-2003 | Отправлено: 16:39 29-10-2013 | Исправлено: Gourmet, 16:39 29-10-2013
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekseyPopovv

Цитата:
Нужно чтобы при выборе "Распаковка портативной версии" галочки были не активные.
-- адаптируй под свои нужды:
Подробнее...
 
trolltmn, Gourmet -- одна и та же ошибка - путаете директивы препроцессора и функции компилятора. Директивы препроцессора выполняются при сборке (при создании инсталлятора); функции - при запуске инсталлятора.
 
uselocker

Цитата:
Задача стоит такая: в ини файл записать путь к офисным приложениям.
-- для определения пути к офисным программам лучше использовать реестр. Напр. HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App
Paths\Winword.exe
Во-первых, офис не всегда устанавливается на диск С: или в Program Files, во-вторых - путь будет отличаться в зависимости от версии офиса.  
Но строго говоря, сам подход сохранения пути к офисным приложениям в инишник - ошибочен. Пользователь вполне может обновить версию офиса уже после установки твоего софта. Соответственно - поменяется путь к программам. А в инишнике останется старый. Лучше чтобы программа сама считывала данные из реестра (тогда когда они ей нужны), а не при инсталляции.
 


----------
Для жалоб | Для благодарностей

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 21:15 29-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Gourmet -- одна и та же ошибка - путаете директивы препроцессора и функции компилятора. Директивы препроцессора выполняются при сборке (при создании инсталлятора); функции - при запуске инсталлятора.  

 
в хелпе inno setup они все называются функциями, никакого различия нет  
 
то есть, нет возможности получить маршрут к Моим Документам при создании архива? не статически, динамически, поскольку в разных ОС он разный

Всего записей: 1782 | Зарегистр. 26-06-2003 | Отправлено: 09:01 30-10-2013 | Исправлено: Gourmet, 09:14 30-10-2013
tuz1979

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребята подскажите как добавить кнопки вот здесь

 
вот скрипт
 
Подробнее...

Всего записей: 69 | Зарегистр. 20-04-2010 | Отправлено: 11:11 30-10-2013 | Исправлено: tuz1979, 20:13 30-10-2013
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gourmet

Цитата:
в хелпе inno setup они все называются функциями, никакого различия нет
-- согласен. В твоем случае действительно функция. Но различия есть. GetEnv - это функция препроцессора. В хелпе ее описание находится в разделе Inno Setup Preprocessor. Функции препроцессора выполняются при компиляции. Т.е. когда ты запускаешь код на компиляцию, компилятор первым делом запускает препроцессор, который подготовливает код для компиляции. Например, если в коде есть строка:
Source: {#GetEnv("ENVVAR")}\MyProg.exe; DestDir: {app}  
... препроцессор выполнит функцию GetEnv("ENVVAR") и заменит эту часть на результат функции GetEnv (напр. на: C:\MySoft). В результате строка примет вид:
Source: C:\MySoft\MyProg.exe; DestDir: {app}  
... и именно в таком виде код будет передан на компиляцию.
 
В твоем же примере:
Source: "{#ExpandConstant('{userdocs}')}\Visual Studio 2005\Projects\SKIP.src\hlp\hlp.rus\kdstc.cnt"....
... ExpandConstant является функцией компилятора, а не препроцессора. Поэтому препроцессор ее проигнорирует и отдаст на компиляцию в исходном виде. Компилятор же при сборке функции не выполняет (функции компилятора выполняются при работе собранного инсталлятора на компьютере клиента). Соответственно, включить в инсталлятор файл с неизвестным расположением компилятор не сможет и выдаст ошибку. Что у тебя и происходит.
 
И я не совсем понимаю, зачем при сборке указывать динамический путь? Ведь путь к папке {userdocs} на компьютере где собирается инсталлятор самостоятельно поменяться не может. Или инсталлятор собирают разные люди на разных компах? Но тогда проще у каждого выставить свой путь. На результат это не повлияет.
 
Вот нашел в старых сезонах объяснение принципов работы препроцессора: http://forum.ru-board.com/topic.cgi?forum=5&topic=27438&start=300#16

----------
Для жалоб | Для благодарностей

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 12:31 30-10-2013 | Исправлено: Genri, 12:56 30-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
В хелпе ее описание находится в разделе Inno Setup Preprocessor.

 
если бы... никаких различий нигде не описано
 

Цитата:
я не совсем понимаю, зачем при сборке указывать динамический путь? Ведь путь к папке {userdocs} на компьютере где собирается инсталлятор самостоятельно поменяться не может. Или инсталлятор собирают разные люди на разных компах?  

 
собирать могут разные люди на разных компах в разное время потом, и менять в исходнике инсталлятора маршруты - категорически не приемлемо, надо описывать в документации, чревато ошибками и т.д.
 
про препроцессинг ТТТ мне известно лет десятки еще после первого прчтения K&R "Язык Си", но не очевидно, почему ExpandConstant не может также подменяться препроцессором, как GetEnv - обе просто выдают значения своих параметров, и у обеих эти параметры и их значения известны на этапе компиляции, если и не все, но {userdocs} точно известно
 
тем более - почему нельзя просто подставлять значение константы в Source: "{userdocs}\.... поскольку оно при компиляции (а значит, и при сборке архива) известно??
 
и вообще, Inno Setup уже в печенках, проект сдадим, и больше этим инсталлятором упаси Боже пользоваться... лучше тогда свой написать, чем этот геморрой

Всего записей: 1782 | Зарегистр. 26-06-2003 | Отправлено: 15:55 30-10-2013
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gourmet

Цитата:
никаких различий нигде не описано
-- вероятно, у нас разные хелпы
 

Цитата:
почему нельзя просто подставлять значение константы в Source
-- потому что так указано в хелпе (по крайней мере в моем):

Цитата:
Source  (Required)
.....
Constants may only be used when the external flag is specified, because the compiler does not do any constant translating itself.  

 

Цитата:
лучше тогда свой написать, чем этот геморрой
-- в некоторых случаях это действительно - более оптимальный вариант. Хотя в данном случае, я бы все-таки использовал возможности препроцессора. Например функцией ReadReg брать путь из реестра. Уж в реестре можно найти любой системный или пользовательский путь. Напр. в ветке: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
А так как ReadReg является функцией препроцессора, использовать ее можно по аналогии с GetEnv.
 


----------
Для жалоб | Для благодарностей

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 17:08 30-10-2013
tuz1979

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так че некто не поможет?

Всего записей: 69 | Зарегистр. 20-04-2010 | Отправлено: 17:34 30-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
Например функцией ReadReg брать путь из реестра.

 
нет такой... я же версию написал - 5.4.2, мы с ним делаем с самого начала проект, а под конец менять версию нельзя, мало ли что по-другому работать будет
 
сделали иначе - из-за многочисленных внешних привязок и сложной инфраструктуры, у нас технологически необходима полная установка продукта перед тем, как собирается новый с изменениями, поэтому проще при установке завести переменную среды %MYDOCUMENTSPATH% в которую прописать в скрипте маршрут при помощи RegQueryStringValue/RegWriteStringValue, а когда происходит сборка инсталлятора, то из этой переменной брать его с помощью GetEnv
 
через ж... конечно, но работает

Всего записей: 1782 | Зарегистр. 26-06-2003 | Отправлено: 09:10 31-10-2013
dragon1000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет форумчане вот такой вопрос у меня:
 
Задача состоит в том чтобы инсталятор работал как распаковщик, т.е мне нужно чтобы при указании папки инсталятор распаковывал туда файлы.  
 
проблема в том что он распаковывает файлы не непосредственно в выбранную папку а создает новую в ней и туда помещает файлы.
 
Если прописать параметр в секции setup:
 
CreateAppDir=no
 
То он в процессе все равно создает папку с именем новая папка и туда помещает файлы
 
Помогите мне советом )

Всего записей: 42 | Зарегистр. 07-06-2012 | Отправлено: 21:34 02-11-2013
Scorpio_1986

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Можете подсказать как сделать удаление компонента если убрать галочку при последующей установке.

Всего записей: 1 | Зарегистр. 02-12-2011 | Отправлено: 21:58 02-11-2013
log1stable



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Такой вопрос: возможно ли сменить язык установщика из секции [languages] прямо во время процесса. Тобишь, не сообщением в начале, мол, выберите язык установки, а, например, кнопкой [En] на wizardform'e? Не нашёл ни одной схожей процедуры. Видимо, встроенных нету.
 
Добавлено:
dragon1000, может, usepreviousdir работает? Или в архиве как раз папка "Новая папка". Вообще, скрипт покажи.
 
Добавлено:
Не знаю, может, тут на форуме уже залили эту информацию. В общем, Inno Setup теперь и c AlphaSkins работает. Знающие люди поймут, а не знающие могут загуглить. Для скинизации исользовать следующий код:

Код:
 
[Files]
Source: "Skin.asz"; Flags: dontcopy
 
[Сode]
procedure InitializeWizard;
begin
  ExtractTemporaryFile('Skin.asz');
  WizardForm.SkinManager.SkinDirectory := ExpandConstant('{tmp}');
  WizardForm.SkinManager.SkinName := 'Skin.asz';
end;
 

 
Ссылка для скачивания студии: http://rghost.ru/49898409

Всего записей: 146 | Зарегистр. 15-07-2011 | Отправлено: 07:06 03-11-2013
dragon1000



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
может, usepreviousdir работает? Или в архиве как раз папка "Новая папка". Вообще, скрипт покажи.

 
http://rghost.ru/49898853

Всего записей: 42 | Зарегистр. 07-06-2012 | Отправлено: 09:36 03-11-2013
Zorbbb

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверное избитый вопрос:
Как в секции Run задать параметры запуска экзешника с правами Администратора под 7 и 8 виндой?

Всего записей: 52 | Зарегистр. 18-01-2010 | Отправлено: 10:11 03-11-2013
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
log1stable

Цитата:
Ссылка для скачивания студии:

Ну и зачем в архиве компилятор Inno - он и так есть у пользователей?
Вот за сами скины спасибо!
И да кстати студии там нет, чем редактировать скины?

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 13:07 03-11-2013 | Исправлено: sjwrec, 13:09 03-11-2013
log1stable



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Думаешь, тот компилятор поддерживает skinmanager? Это - скомпиленный из общедоступного кода в гугле. Редактировать можно AlphaSkinEditor'ом или как там его. На сайте AlphaSkins.com в разделе Downloads ты найдешь.
 
Добавлено:
Zorbbb, сомневаюсь, что это можно сделать секцией Run. Лучше программно через присвоение флагов и ShellExec.

Всего записей: 146 | Зарегистр. 15-07-2011 | Отправлено: 14:50 03-11-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup: создание инсталляционных пакетов (Часть 15)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru