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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Cheery



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

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
All version | Исходники проекта
 
Последние версии:
Inno Setup QuickStart Pack (Unicode) 6.1.2 [15.11.2020]
Скачать (4.23 Mb)
 
Inno Setup 6.2.2 [15.02.2023]
Скачать (4.50 Mb)
 
Что нового? | Что нового v.6x?  
 
Русский язык для Inno Setup v6.x
Скачать
 
Русский язык для Inno Setup v5.x
Скачать
 
Русская справка к версии - 6.0.0 beta | 5.6.1 - Зеркало
 
Последняя версия с поддержкой 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 | Исправлено: Komandor, 10:55 21-01-2024
vint56



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

Всего записей: 1277 | Зарегистр. 07-10-2008 | Отправлено: 23:28 23-10-2013
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Black_Ghost
 
У меня прописано так:
 
[Files]
Source: Install\ISDONE\Include\Unrar.dll; DestDir: {tmp}; Flags: dontcopy
 
//////////////////////////////////////////////
 
затем прописана распаковка файла в секции Code
 
ExtractTemporaryFile('Unrar.dll');

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 00:29 24-10-2013
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, подскажите пожалуйста пример скрипта, что бы в одном инсталяторе была обычная и портативная версии. Что бы был выбор "Установка обычной версии" и "Распаковка портативной версии". Заранее спасибо.

Всего записей: 265 | Зарегистр. 25-03-2013 | Отправлено: 07:55 24-10-2013
Gourmet

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всемирный Разум, помоги!...
 
Используется InnoSetup 5.4.2. Нужно в setup, который собирается из текущего каталога, где лежит .iss файл, включить несколько файлов из другого каталога. При этом в маршруте источника надо использовать переменную среды, в которой указан маршрут. Если просто написать Source: "{%ENVVAR}\MyProg.exe"; ругается, не понимает {%ENVVAR} в этом месте. Если добавить в конце Flags: external, то как я понял, этот файл должен лежать вне архива, он просто не включается в setup (в протоколе сборки строка с этим файлом пропускается, а при выполнении setup.exe спрашивает, где лежит этот файл). То есть, ключ Flags: external меняет смысл Source, источник используется не при упаковке setup.exe, а во время установки. А мне надо, чтобы маршрут из переменной среды, и во время упаковки.
 
Есть ли возможность забрать в архив несколько файлов не из каталога Setup, обязательно используя переменную среды с маршрутом, но все остальные из этого каталога, вместе с деревом? В принципе, устраивает возможность перед упаковкой скопировать нужные файлы в каталог Setup, но не хочется городить еще cmd-файл, который это будет делать, а из него запускать InnoSetup.
 
Есть ли другой способ?

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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Gourmet
 
1. Flags: external - не для упаковки файлов в архив. Он указывает путь где эти файлы лежат например на диске и оттуда они берутся во время установки. Так подобное часто делает инсталл Install Shield Wizard.
 
2. %ENVVAR - что это за переменная среды? - гораздо лучше указать путь так:
Source: "С:\Моя папка\MyProg.exe"; - т.е полный путь к файлам.

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 12:50 24-10-2013
Gourmet

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

Цитата:
external - не для упаковки файлов в архив. Он указывает путь где эти файлы лежат например на диске и оттуда они берутся во время установки.

 
ну это я понял... криво, однако, смысл Source сильно меняется с этим ключом, лучше бы два ключа было, для указания маршрута при упаковке, и при распаковке
 
а по-правильному, переменные среды и константы в Source должны распознаваться
 

Цитата:
%ENVVAR - что это за переменная среды? - гораздо лучше указать путь так:
Source: "С:\Моя папка\MyProg.exe"; - т.е полный путь к файлам.  

 
%ENVVAR - это созданная мной ранее переменная среды (на самом деле, имя, конечно, другое, тут просто пример), которая содержит путь к файлам, она активно используется в других частях проекта, путь в ней может быть разный, поэтому указание полного маршрута никак не приемлемо, то есть - надо с переменной среды, иначе никак

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

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

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


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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
А мне не поможете с примером скрипта, что бы в одном инсталяторе была обычная и портативная версии. Что бы был выбор "Установка обычной версии" и "Распаковка портативной версии". Заранее спасибо.

Всего записей: 265 | Зарегистр. 25-03-2013 | Отправлено: 15:31 24-10-2013
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekseyPopovv -- задача не определена. Непонятно, чем в твоем понимании отличаются обычная и портативная версии.


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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri, на сколько я понимаю - одна устанавливается в систему, другая просто распаковывается в папку назначения. Где то были примеры. Что то типа или типа

Всего записей: 1076 | Зарегистр. 11-10-2006 | Отправлено: 16:02 24-10-2013 | Исправлено: nik1967, 16:20 24-10-2013
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Примерно вот так что бы было    
В справке читал про это   , но как прикрутить это не знаю. Помогите пожалуйста.
 
Добавлено:
nik1967
Спасибо. Буду пробовать.

Всего записей: 265 | Зарегистр. 25-03-2013 | Отправлено: 16:05 24-10-2013
Genri

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

Цитата:
одна устанавливается в систему, другая просто распаковывается в папку назначения
-- все немного сложнее. Подавляющее большинство инсталляторов, позволяют указать папку назначения вне зависимости от того, устанавливается "обычная" версия или портабельная. И даже отсутствие деинсталлятора не сделает программу "портабельной" если она использует какие-либо ключи в реестре или какие-либо файлы в системной директории.
 
AlekseyPopovv

Цитата:
Примерно вот так что бы было  
-- создать сами пункты достаточно просто. В топике масса примеров. Но как я сказал выше, отсутствие деинсталлятора, не сделает программу портабельной. Портабельность подразумевает, что папку с программой можно просто скопировать на другой комп и она нормально заработает. Если программа не использует никаких сторонних файлов, кроме как из своей папки и не прописывает ключи в реестр, тогда она априори портабельная. Вне зависимости от наличия или отсутствия деинсталлятора.
Но если например "обычная" версия использует для хранения настроек реестр, а портабельная вместо реестра хранит настройки в инишнике, тогда это должно быть предусмотрено в самой программе. Отсюда и вопрос - чем в твоем случае отличаются обычная и портабельная версии? Если только наличием деинсталлятора - см. примеры ув.nik1967. Если местом хранения настроек - озвучь варианты.

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

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



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
AlekseyPopovv
Это прикол такой с выкладыванием таких широких скриншотов?! Убери под кат!

Всего записей: 965 | Зарегистр. 28-11-2006 | Отправлено: 20:42 24-10-2013
Dobry_Doctor

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток всем.
Для "красивого" прерывания процесса инсталла, если после wpInfoBefore (ну или wpWelcome) не прошла проверка некоторых условий, пользовался ShouldSkipPage() с пропуском wpSelectDir,wpSelectProgramGroup,wpSelectTasks,wpReady,wpPreparing,wpInstalling,wpInfoAfter. В результате довольно "красиво" вываливался в wpFinished. До тех пор пока не решил вручную создать свою форму с контролами и после ввода в контролы некоторых значений сделать еще одну проверку.  
Вопрос : какой PageID нужно указать в  ShouldSkipPage(), чтобы и созданная MyPage (находящаяся сразу после wpInfoBefore) была пропущена ? Или может это делается как-то по-другому ?
Вот кусок кода из секции Code:

Код:
 
var  MyPage: TWizardPage;
     fAbortSetup: Boolean;  
 
procedure CreateNewPage;
begin
 MyPage:=CreateCustomPage(wpInfoBefore, 'Текст1', 'Текст2');
 
 TopText:=TLabel.Create(MyPage)
 ...
 
 Edit1:=TEdit.Create(MyPage)
 ...
 
// и т.д.
end;
 
procedure InitializeWizard();
begin
  { Custom wizard pages }
  CreateNewPage;
end;
 
function InitializeSetup(): Boolean;
begin
 fAbortSetup := false;
 Result:=True;
end;
 
function NextButtonClick(CurPageID: Integer): Boolean;
begin
 Result := true;
 
 case CurPageID of
  wpInfoBefore:
   begin
       
//     проверка некоторых условий, например
      if условие=false then  
        begin
          if ActiveLanguage = 'English' then
             MsgBox('The operating system is not found the installed program.', mbInformation, MB_OK);
          if ActiveLanguage = 'Russian' then
             MsgBox('В операционной системе не найдено установленной программы.', mbInformation, MB_OK);
           fAbortSetup := true;
        end;
   end;  
 end;
end;
 
function ShouldSkipPage(PageID: Integer): Boolean;
begin
 if fAbortSetup then
  begin
   case PageID of
    wpSelectDir,wpSelectProgramGroup,wpSelectTasks,wpReady,wpPreparing,wpInstalling,wpInfoAfter: Result := True;
   end;
   if ActiveLanguage = 'English' then  WizardForm.FinishedLabel.Caption := 'Update installation is aborted.'+#10+#13+'Click "Finish" to exit the installation'
   else if ActiveLanguage = 'Russian' then WizardForm.FinishedLabel.Caption := 'Установка обновления прервана.'+#10+#13+'Нажмите "Завершить" чтобы выйти из программы установки.';
  end;
end;
 

Уровень - программист на языке Pascal (Delphi), так что паскалевский код для меня - не проблема...

Всего записей: 5 | Зарегистр. 12-09-2013 | Отправлено: 14:37 25-10-2013 | Исправлено: Dobry_Doctor, 14:47 25-10-2013
nik1967



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

Всего записей: 1076 | Зарегистр. 11-10-2006 | Отправлено: 15:15 25-10-2013
cepbl4



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, подскажите, пжл, как на странице Task-ов сделать следующее:
 
при заходе на страницу тасков видны некоторые таски и вот так:
...
Таск1 радиобатон выбран
Таск2 радиобатон невыбран
 
при выбирании радиобатона Таска2, появляется список из некоторых подтасков, примерно так:
 
Таск1
Таск2
 Таск2.1
 Таск2.2
 ...
 Таск2.n
 
Т.е. чтобы появлялся раскрывающийся список Тасков 2.n только при выборе Таска 2.
 
Подробнее...

Всего записей: 348 | Зарегистр. 19-11-2007 | Отправлено: 13:10 27-10-2013 | Исправлено: cepbl4, 13:11 27-10-2013
sjwrec



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

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 19:22 27-10-2013 | Исправлено: sjwrec, 19:41 27-10-2013
tuz1979

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
привет всем!
помогите пожалуйста сделать инсталятор как етот
https://disk.yandex.ua/public/?hash=Y7qiL%2BMzyDihg7Gf2MzY3jGrflUJ%2BTw6yEVfRMTdPfk%3D

Всего записей: 69 | Зарегистр. 20-04-2010 | Отправлено: 02:33 28-10-2013
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите вот с такой штукой:
   
Нужно чтобы при выборе "Распаковка портативной версии" галочки были не активные. Вот код:
[Tasks]
; Тип
; normalmode
Name: normalmode; Description: Установка обычной версии; GroupDescription: "Тип:"; Flags: exclusive
; portablemode
Name: portablemode; Description: Распаковка портативной версии; GroupDescription: "Тип:"; Flags: exclusive unchecked
; Дополнительно
; Ярлык(и) на «Рабочем столе»
Name: "desktopicon"; Description: "Ярлык(и) на «Рабочем столе»"; GroupDescription: "Дополнительно:"; Flags: checkedonce
; Ярлыки в меню «Пуск»
Name: "starticon"; Description: "Ярлыки в меню «Пуск»"; GroupDescription: "Дополнительно:"; Flags: checkedonce

Всего записей: 265 | Зарегистр. 25-03-2013 | Отправлено: 17:31 28-10-2013
uselocker

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет! Прошу помощи коллективного разума. Задача стоит такая: в ини файл записать путь к офисным приложениям. Как бы вроде все просто но уже покопав доки и попробовав много вариантов решил обратиться за помощью. Типовые задачи описанные есть и я из них попытался собрать вариант для себя, но вижу что я скорее всего что-то упускаю. Странно но не работает в самой простой конфигурации скрипта. А именно если задать тестовый вариант то ничего в файле не меняется.
пример

Код:
 
[INI]
Filename: "bis.ini"; Section: "application"; Key: "rtfedit"; String: "sdjkfgskljgsldkjgdslkjghsklgj"
 

и приведу общую концепцию с которой я подходил к вопросу

Код:
 
[Code]
function MyFileCheck(FileName: String): Boolean;
begin
  Result := FileExists(FileName);
end;
 
[INI]
Filename: "{app}\bis.ini"; Section: "application"; Key: "rtfedit"; String: "c:\Program Files\Microsoft Office\Office15\WINWORD.EXE ""%s""";   Check: MyFileCheck('c:\Program Files\Microsoft Office\Office15\WINWORD.EXE')
Filename: "{app}\bis.ini"; Section: "application"; Key: "tbledit"; String: "c:\Program Files\Microsoft Office\Office15\EXCEL.EXE ""%s""";     Check: MyFileCheck('c:\Program Files\Microsoft Office\Office15\EXCEL.EXE')
 

т.е. я делаю проверку на наличие файла и если функция возвращает тру, то должен писаться путь в ини файл.
подскажите у кого какие мысли на данный счет?

Всего записей: 1 | Зарегистр. 02-12-2010 | Отправлено: 21:38 28-10-2013 | Исправлено: uselocker, 21:44 28-10-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

Компьютерный форум 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