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

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



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет. Подскажите пожалуйста какой командой в скрипте запретить изменять путь установки приложения, но выбор диска для установки оставить?

Всего записей: 7 | Зарегистр. 05-12-2015 | Отправлено: 19:14 14-12-2015
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DMITRIY18111985,
Взял с StackOverflow:

Код:
 
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName=My Program
 
[Messages]
SelectDirBrowseLabel=To continue, click Next.
 
[ Code]
#ifdef UNICODE
  #define AW "W"
#else
  #define AW "A"
#endif
type
  TDriveType = (
    dtUnknown,
    dtNoRootDir,
    dtRemovable,
    dtFixed,
    dtRemote,
    dtCDROM,
    dtRAMDisk
  );
  TDriveTypes = set of TDriveType;
 
function GetDriveType(lpRootPathName: string): UINT;
  external 'GetDriveType{#AW}@kernel32.dll stdcall';
function GetLogicalDriveStrings(nBufferLength: DWORD; lpBuffer: string): DWORD;
  external 'GetLogicalDriveStrings{#AW}@kernel32.dll stdcall';
 
var
  DirCombo: TNewComboBox;
 
#ifndef UNICODE
function IntToDriveType(Value: UINT): TDriveType;
begin
  Result := dtUnknown;
  case Value of
    1: Result := dtNoRootDir;
    2: Result := dtRemovable;
    3: Result := dtFixed;
    4: Result := dtRemote;
    5: Result := dtCDROM;
    6: Result := dtRAMDisk;
  end;
end;
#endif
 
function GetLogicalDrives(Filter: TDriveTypes; Drives: TStrings): Integer;
var
  S: string;
  I: Integer;
  DriveRoot: string;
begin
  Result := 0;
 
  I := GetLogicalDriveStrings(0, #0);
  if I > 0 then
  begin
    SetLength(S, I);
    if GetLogicalDriveStrings(Length(S), S) > 0 then
    begin
      S := TrimRight(S) + #0;
      I := Pos(#0, S);
      while I > 0 do
      begin
        DriveRoot := Copy(S, 1, I - 1);
        #ifdef UNICODE
        if (Filter = []) or
          (TDriveType(GetDriveType(DriveRoot)) in Filter) then
        #else
        if (Filter = []) or
          (IntToDriveType(GetDriveType(DriveRoot)) in Filter) then
        #endif
        begin
          Drives.Add(DriveRoot);
        end;
        Delete(S, 1, I);
        I := Pos(#0, S);
      end;
      Result := Drives.Count;
    end;
  end;
end;
 
procedure DriveComboChange(Sender: TObject);
begin
  WizardForm.DirEdit.Text := DirCombo.Text;
end;
 
procedure InitializeWizard;
var
  I: Integer;
  StringList: TStringList;
begin
  StringList := TStringList.Create;
  try
    if GetLogicalDrives([dtFixed], StringList) > 0 then
    begin
      WizardForm.DirEdit.Visible := False;
      WizardForm.DirBrowseButton.Visible := False;
 
      DirCombo := TNewComboBox.Create(WizardForm);
      DirCombo.Parent := WizardForm.DirEdit.Parent;
      DirCombo.SetBounds(WizardForm.DirEdit.Left, WizardForm.DirEdit.Top,
        WizardForm.DirBrowseButton.Left + WizardForm.DirBrowseButton.Width -
        WizardForm.DirEdit.Left, WizardForm.DirEdit.Height);
      DirCombo.Style := csDropDownList;
      DirCombo.OnChange := @DriveComboChange;
 
      for I := 0 to StringList.Count - 1 do
        DirCombo.Items.Add(StringList[I] + '{#SetupSetting('DefaultDirName')}');
 
      DirCombo.ItemIndex := 0;
      DirCombo.OnChange(nil);
    end;
  finally
    StringList.Free;
  end;
end;
 

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 19:23 14-12-2015 | Исправлено: ultimo, 19:26 14-12-2015
DMITRIY18111985



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[q][/q]
Где здесь команда запрета, что то не разберусь?

Всего записей: 7 | Зарегистр. 05-12-2015 | Отправлено: 19:53 14-12-2015
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DMITRIY18111985
Это не просто "команда запрета". Это определенный алгоритм, вариант решения вашей задачи.

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 15:08 15-12-2015
hansleo

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

Всего записей: 2 | Зарегистр. 18-12-2015 | Отправлено: 17:12 18-12-2015
TimKray

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, как совместить эти скрипты:
https://drive.google.com/file/d/0B2jNSpVLZApHNjRZYnRjcUh0X3c/view
 и этот:  https://drive.google.com/file/d/0B2jNSpVLZApHNHFyQlVrSjdlSGc/edit

Всего записей: 2 | Зарегистр. 24-12-2015 | Отправлено: 17:54 24-12-2015
taba555



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
records.inf как убрать из репака или прятать
 
Добавлено:
Как вообще убрать из репака   или прятать records.inf при создании инсталлятора . Вот скрипт https://yadi.sk/d/OhIz64EUmVsk4 За ранее спасибо.

Всего записей: 9 | Зарегистр. 09-07-2015 | Отправлено: 11:36 26-12-2015
innonewbie

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
taba555, records.inf создаётся автоматически для корректной расстановки процентов при распаковке Isdone. Чтоб убрать - можешь проценты расставить вручную, как это сделать описано в справке к Isdone. Чтоб скрыть, возможно, поможет Attribs: hidden system;

Всего записей: 168 | Зарегистр. 30-12-2010 | Отправлено: 14:37 26-12-2015
sjwrec



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

Цитата:
Как вообще убрать из репака   или прятать records.inf при создании инсталлятора

Не нужно его прятать. Нужно просто файл переместить в папку со скриптом, раскоментировать строку #define records
И снова скомпилировать ваш скрипт. После этого records.inf, будет появляться только при запуске инсталла и находится по пути AppData\Temp короче куда обычные пользователи не лазят. Так что ничего прятать не нужно, нужно лишь внимательно читать справку по isDone и таких вопросов не возникнет.  

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 19:06 27-12-2015 | Исправлено: sjwrec, 19:07 27-12-2015
tempMISHANCHYK

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста. Бывает что при деинсталяции программ некоторые .dll заблокированны системными процессами(или программами) и не удаляются. Можно как-то задать условие для их разблокировки при деинсталяции?

Всего записей: 32 | Зарегистр. 09-11-2015 | Отправлено: 03:22 03-01-2016
TimKray

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...
 
Добавлено:
https://drive.google.com/open?id=0B5Zm-Ecbpn_gal9DUEdWTDFWM28
 
Добавлено:
как эти два скрипта соединить?????Заранее спасибо

Всего записей: 2 | Зарегистр. 24-12-2015 | Отправлено: 12:52 04-01-2016
dragon1000



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

Всех с наступившим новым годом !!!


Всего записей: 42 | Зарегистр. 07-06-2012 | Отправлено: 15:05 04-01-2016 | Исправлено: dragon1000, 17:52 04-01-2016
MihailM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всех с Наступившим Новым Годом !
Есть, вопросик  как прочитать определенную ветку реестра и подставить вместо пути на распаковку . То есть пропустить уже выбор каталога куда распаковывать .  
Подскажите пожалуйста , а лучше выложите уже готовый код .
Заранее благодарен !

Всего записей: 2623 | Зарегистр. 19-10-2003 | Отправлено: 01:26 05-01-2016
ultimo



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

Код:
 
#define RegistryKey              "Тут нужный ключ"
#define RegistryValueInstall    "Строковый параметр-путь"
 
[Setup]
DefaultDirName={code:GetInstallDir}
DisableDirPage=yes
 
[_code]
function GetInstallDir(Param: String): String;
begin
   RegQueryStringValue(HKLM, '{#RegistryKey}', '{#RegistryValueInstall}', Result);
end;
 

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 09:44 05-01-2016
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MihailM
Вот так проще и нагляднее
 
Подробнее...

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 14:52 05-01-2016 | Исправлено: sjwrec, 15:10 05-01-2016
MihailM

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sjwrec , спасибо . А то вроде бы ты и давал мне что то похожее . Но после проблем с ХДД и не найду .
Еще раз спасибки !!

Всего записей: 2623 | Зарегистр. 19-10-2003 | Отправлено: 16:33 05-01-2016
usermode

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кому понадобится...
 
Empty Files Creator 1.0
http://www.softpedia.com/get/PORTABLE-SOFTWARE/System/File-management/Empty-Files-Creator.shtml
 
Программа предназначена для создания файлов-пустышек из любого каталога, включая пустые папки и пути более 255 символов.
 
Использование:
 
- Выберите каталог с целевой папкой, из которой хотите создать файлы-пустышки, а затем выберите папку выхода (должна быть пустой).
- Нажмите кнопку Create для создания точной структуры целевой папки с файлами-пустышками.
 
Для чего это нужно?
 
- Нужно это для создания инсталляционных репаков, которые используют внешние упаковщики, например, FreeArc. Идея в том, чтобы поместить файлы-пустышки в инсталлятор как оригинальные файлы для того, чтобы деинсталлятор запомнил, какие файлы нужно удалять после деинсталляции. С данной возможностью, не нужно больше использовать небезопасную DelTree функцию для папки с игрой.

Всего записей: 473 | Зарегистр. 11-12-2014 | Отправлено: 22:26 05-01-2016
bugron



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Обновил справку для Inno в соответствии с последней версией (5.5.7). Ссылка в шапке. Прошу обновить версию (5.5.5 -> 5.5.7) в шапке.

Всего записей: 123 | Зарегистр. 21-06-2011 | Отправлено: 12:59 09-01-2016
specxml

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Прошу помощи. Нужно сделать так, чтобы установщик проверял наличие каталога в папке установки, и если каталог отсутствует то не создавал его и соответственно не распаковывал туда файлы.
Например:
Source: "Файлы\*"; DestDir: "{app}\build\"; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: "Файлы\*"; DestDir: "{app}\build_rus\"; Flags: ignoreversion recursesubdirs createallsubdirs;
Source: "Файлы\*"; DestDir: "{app}\build_eng\"; Flags: ignoreversion recursesubdirs createallsubdirs;
 
Проверяем какие из этих папок есть в {app} и только в существующие распаковываем. При это в папку build в любом случае распаковываем. Т.е. это должен быть какой то флаг, как мне кажется, но он не предусмотрен inno изначально.
Замучился искать, нашел только проверку на наличие файла, но этот вариант не подходит.
За ранее спасибо!

Всего записей: 7 | Зарегистр. 12-01-2016 | Отправлено: 14:08 12-01-2016 | Исправлено: specxml, 15:57 12-01-2016
sjwrec



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

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 16:23 12-01-2016 | Исправлено: sjwrec, 16:25 12-01-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 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