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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поправьте в шапке:
Дополнительные утилиты для Inno Setup
(адрес заменил на зеркало восстановленное из интернет-архива, но хотя бы не мёртвая и почитать можно)
 

Программа для создания инсталляционных пакетов с помощью Inno Setup. Имеет простой интерфейс и обладает всеми возможностями Inno Setup. (программа не развивается, оригинальный сайт закрыт, ссылка указывает на копию сайта, восстановленную из снимков wayback machine)
 
Последний релиз: 1.0.0.0078 [14.12.2010]
Скачать (1.83 Mb) |

Всего записей: 36 | Зарегистр. 07-04-2009 | Отправлено: 11:42 07-10-2016 | Исправлено: PaulSanych, 11:43 07-10-2016
codecs



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
там какая-то хрень баннерокрутилка, собранная на NSIS

Всего записей: 2006 | Зарегистр. 22-07-2003 | Отправлено: 13:27 07-10-2016 | Исправлено: codecs, 18:31 07-10-2016
painter7



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

Цитата:
как добавить несколько строк в текстовый файл, который в кодировке UTF-16 ?

Костылями только, смотря какой текст (константа или какой-то с кракозяблями) и куда его (в конец файла или где-то в середину строк) и UTF-16LE или UTF-16BE там.
Есть пример что пихать?

Всего записей: 1257 | Зарегистр. 25-04-2012 | Отправлено: 17:20 07-10-2016 | Исправлено: painter7, 17:21 07-10-2016
codecs



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
да я уже выкрутился используя nircmd, т.к. функция Type в системном CMD тоже не пишет в UTF-16, хотя заявлено, что должна

Всего записей: 2006 | Зарегистр. 22-07-2003 | Отправлено: 18:30 07-10-2016
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. У меня в инсталляторе содержатся файлы "*.msi" и пока они копируются (не устанавливаются) в папку "Temp" мне нужно удалить папку именно на этапе копирования а не установки. Как сделать?

Всего записей: 266 | Зарегистр. 25-03-2013 | Отправлено: 05:43 13-10-2016
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekseyPopovv
а на каком этапе .msi копируются? И каким образом? Через ExtractTemporaryFile(s)?
 
И какую папку удалить нужно? Есть функция DelTree, к примеру. Но в любом случае, она будет выполнятся либо до вызова функции распаковки временных файлов, либо после.

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 15:30 13-10-2016
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ultimo
Да, DelTree не канает.
Копируются через "Files", устанавливаются через "Run"

Всего записей: 266 | Зарегистр. 25-03-2013 | Отправлено: 05:36 14-10-2016
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekseyPopovv
Я бы сделал как-то так (просто пример использования параметров AfterInstall и BeforeInstall).
 
Только в этом случае удаление папки будет либо до копирования, либо после.

Код:
 
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"; AfterInstall: MyAfterInstall
Source: "A\MYFILE.TXT"; DestDir: "{app}"; BeforeInstall: MyBeforeInstall2('{app}\A\MYFILE.TXT')
 
[_Code]
procedure MyAfterInstall();
begin
  // Delete the directory C:\Test and everything inside it
  DelTree('C:\Test', True, True, True);
 
  // Delete files matching C:\Test\*.tmp
  DelTree('C:\Test\*.tmp', False, True, False);
 
  // Delete all files and directories inside C:\Test
  // but leave the directory itself
  DelTree('C:\Test\*', False, True, True);
end;
 
procedure MyBeforeInstall2(FileName: String);
begin
  MsgBox('About to install ' + FileName + ' as ' + CurrentFileName + '.', mbInformation, MB_OK);
end;
 
 

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 13:27 14-10-2016 | Исправлено: ultimo, 13:30 14-10-2016
semiono



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что нибудь можно сделать, чтобы setup.EXE был >2GB одним файлом?
Непонятно, зачем на NTFS это ограничение, есть возможность обойти??

Всего записей: 278 | Зарегистр. 12-08-2006 | Отправлено: 23:21 23-10-2016
ultimo



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

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 14:38 24-10-2016
yuriko1158

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

Всего записей: 1078 | Зарегистр. 27-02-2015 | Отправлено: 15:18 24-10-2016
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yuriko1158
кнопок волшебных не бывает) Есть только кнопки, которые можно подогнать под желаемый результат.
 
Функции реестра: (взято из файла помощи. Советую для ознакомления!)

Код:
 
function RegKeyExists(const RootKey: Integer; const SubKeyName: String): Boolean;
function RegValueExists(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;
 
function RegGetSubkeyNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;
function RegGetValueNames(const RootKey: Integer; const SubKeyName: String; var Names: TArrayOfString): Boolean;
 
function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;
function RegQueryMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;
function RegQueryDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultDWord: Cardinal): Boolean;
function RegQueryBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: AnsiString): Boolean;
 
function RegWriteStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;
function RegWriteExpandStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;
function RegWriteMultiStringValue(const RootKey: Integer; const SubKeyName, ValueName, Data: String): Boolean;
function RegWriteDWordValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: Cardinal): Boolean;
function RegWriteBinaryValue(const RootKey: Integer; const SubKeyName, ValueName: String; const Data: AnsiString): Boolean;
 
function RegDeleteKeyIncludingSubkeys(const RootKey: Integer; const SubkeyName: String): Boolean;
function RegDeleteKeyIfEmpty(const RootKey: Integer; const SubkeyName: String): Boolean;
function RegDeleteValue(const RootKey: Integer; const SubKeyName, ValueName: String): Boolean;
 

 
Если просто взять строковый параметр (зачастую именно это и нужно), то нужно использовать  
function RegQueryStringValue(const RootKey: Integer; const SubKeyName, ValueName: String; var ResultStr: String): Boolean;
 
Description:
Queries the specified REG_SZ- or REG_EXPAND_SZ-type value, and returns the data in ResultStr. Returns True if successful. When False is returned, ResultStr is unmodified.
 
Example:
 

Код:
 
var
  Country: String;
begin
  if RegQueryStringValue(HKEY_CURRENT_USER, 'Control Panel\International',
     'sCountry', Country) then
  begin
    // Successfully read the value
    MsgBox('Your country: ' + Country, mbInformation, MB_OK);
  end;
end;
 

 
С остальными функциями тоже проблем быть не должно. В справке все подробно описано, можно и на русском найти.
 
И можно все данные собирать не с кнопки, а на этапе инициализации установщика, и далее с ними работать.  
 
Простой пример кнопки:
 

Код:
 
 
[_Code]
 
var
  NewButton: TNewButton;
 
procedure NewButtonOnClick(Sender: TObject);
begin
  MsgBox('NewButton Click!', mbInformation, MB_OK);
end;
 
procedure InitializeWizard();
begin
  with WizardForm do begin
    NewButton := TNewButton.Create(WizardForm);
    with NewButton do begin
      Parent := NextButton.Parent;
      SetBounds(BackButton.Left - NextButton.Width, NextButton.Top, NextButton.Width, NextButton.Height);
      OnClick := @NewButtonOnClick;
      Caption := 'NewButton';
    end;
  end;
end;
 
 


Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 16:01 24-10-2016
yuriko1158

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ultimo
я понял,волшебной кнопки нету.
всё остальное для меня сложно,я же писал что ещё ни разу не собирал чего либо...
а как можно использовать данные с ветки uninstall?  
там подробно описано в какую папку установлено,какая локализация,да много чего...
просто мне нужно что то попроще на первых порах.ведь игра будет установлена на этот же ПК,если произойдет какой то сбой при патчинге.

Всего записей: 1078 | Зарегистр. 27-02-2015 | Отправлено: 16:20 24-10-2016
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
yuriko1158
я не понимаю, в чем конкретно заключается задача.
 
Ну можно собрать данные с реестра. А дальше что? Типа бекапа ветки реестра что ли?

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 16:28 24-10-2016
yuriko1158

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

Цитата:
в чем конкретно заключается задача

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

Всего записей: 1078 | Зарегистр. 27-02-2015 | Отправлено: 18:43 24-10-2016 | Исправлено: yuriko1158, 21:10 24-10-2016
V0lt_r



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста.
Как сделать так, чтобы компонент в начале установки был всегда НЕвыбранным, т.е. не зависел от предудущих установок?

Всего записей: 722 | Зарегистр. 15-11-2015 | Отправлено: 10:46 25-10-2016
mig73



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Господа, кто шапку эту правит добавьте русскую справку для версии 5.5.9 из поста http://forum.ru-board.com/topic.cgi?forum=5&topic=46338&start=1720#21

Всего записей: 8283 | Зарегистр. 24-02-2010 | Отправлено: 11:13 25-10-2016
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня всем.
Нет ли у вас готового скрипта для последних UltraVNC

Всего записей: 886 | Зарегистр. 04-09-2008 | Отправлено: 12:48 25-10-2016
yuriko1158

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
точно,я же забыл...
а нет ли готового скрипта для F1 2015?

Всего записей: 1078 | Зарегистр. 27-02-2015 | Отправлено: 13:12 25-10-2016
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
V0lt_r
[Setup]
UsePreviousAppDir=False
UsePreviousGroup=False
UsePreviousLanguage=False
UsePreviousSetupType=False
UsePreviousTasks=False
UsePreviousUserInfo=False
 
Выбери что нужно.
 
Добавлено:
yuriko1158

Код:
 
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
#define MyAppName "My Program"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "MyProg.exe"
 
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{60122580-800B-4977-8931-431F5B06E3AD}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
 
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
 
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
 
[Files]
Source: "files\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
 
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
 
[Registry]
Root: HKLM; Subkey: "SOFTWARE\{#MyAppPublisher}"; Flags: uninsdeletekeyifempty;
Root: HKLM; Subkey: "SOFTWARE\{#MyAppPublisher}\{#MyAppName}"; ValueName: "Install Path"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletekey;
Root: HKLM; Subkey: "SOFTWARE\{#MyAppPublisher}\{#MyAppName}"; ValueName: "Language"; ValueType: String; ValueData: "{language}"; Flags: uninsdeletekey;
 

 
Добавлено:
yuriko1158
есть множество примеров в папке компилятора (подпапка Examples)

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 16:22 25-10-2016
Открыть новую тему     Написать ответ в эту тему

Страницы: 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