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

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



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

Цитата:
Пример

Спасибо помогло. Хотя я честно говоря так и не понял, почему не работал мой скрип.

Всего записей: 682 | Зарегистр. 23-06-2008 | Отправлено: 14:02 28-08-2016
Blackstar503

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Как добавить в контекстное меню проводника команду "открыть в AppName" с возможностью выбора в процессе инсталяции программы - добавлять программу в контекстное меню или нет.  Заранее благодарю.

Всего записей: 6 | Зарегистр. 26-08-2016 | Отправлено: 22:56 28-08-2016
ZVSRus1957



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Blackstar503
 
Так не пойдёт?
Читать дальше...

Всего записей: 43 | Зарегистр. 14-05-2015 | Отправлено: 11:00 29-08-2016 | Исправлено: ZVSRus1957, 20:05 29-08-2016
Shaman2

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В шапке не нашел, может подскажете:
 
Есть у меня строка:
Source: "..\trunk\whatsnew6.txt"; DestDir: "{app}"; Flags: isreadme ignoreversion
 
в конце установки можно выбрать "показать файл или нет". А мне надо еще чтобы под ней был выбор "запустить программу или нет". Как это сделать?
 
 
Добавлено:
А как в этот код прогресс бар воткнуть?
 
      MyDirs:=['','db\','report.frf\','report.frf\miReports\','report.frf\miHaving\','report.frf\miPrice\','templates\'];
      for d:=0 to GetArrayLength(MyDirs)-1 do
      begin
 
        MyFiles:=['*']; // 'TS3.exe','gameplay.package','*.precomp','*.jpg'  указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
        MyDir:=ExpandConstant('{app}\'+MyDirs[d]); //папка откуда бакупить
        BackDir:=ExpandConstant('{app}'+'\Backup\'+Date+'\'+MyDirs[d]); // папка куда бакупить
        for i:=0 to GetArrayLength(MyFiles)-1 do
        begin
          if FindFirst(MyDir+MyFiles[i], FindFiles) then begin
            repeat
              if not DirExists(BackDir) then ForceDirectories(BackDir);
              FileCopy(MyDir+FindFiles.Name, BackDir+FindFiles.Name, False);
            until not FindNext(FindFiles);
            FindClose(FindFiles);
          end;
        end;
         
      end;

Всего записей: 358 | Зарегистр. 18-07-2003 | Отправлено: 18:04 29-08-2016
newUser21

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет всем. Создал установщик на inno setup с выбором "для всех" или " только для меня".
Устанавливаю программу с пользователя с правами администратора, выбираю "только для меня".
Но почему в реестр записывается в HKEY_LOCAL_MACHINE, я так понимаю должно в HKEY_CURRENT_USER. И из-за этого у других пользователей в пуске появляется ярлык. То есть получается пользователь с правами админа не может поставить только для себя?  
Использую настройки PrivilegesRequired=none
Для пользователя не админа работает хорошо.

Всего записей: 3 | Зарегистр. 30-08-2016 | Отправлено: 16:12 30-08-2016
ZVSRus1957



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Что означает некрологовая лента(слева вверху) - Вопрос к хозяевам форума

Всего записей: 43 | Зарегистр. 14-05-2015 | Отправлено: 11:06 02-09-2016 | Исправлено: ZVSRus1957, 11:07 02-09-2016
mig73



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZVSRus1957
Ужасные новости http://forum.ru-board.com/topic.cgi?forum=29&bm=1&topic=15493#1

Всего записей: 8283 | Зарегистр. 24-02-2010 | Отправлено: 13:00 02-09-2016
jason49

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

Всего записей: 1 | Зарегистр. 05-09-2016 | Отправлено: 05:44 05-09-2016 | Исправлено: jason49, 13:59 05-09-2016
ZVSRus1957



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

Всего записей: 43 | Зарегистр. 14-05-2015 | Отправлено: 20:45 05-09-2016
YURSHAT



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

Цитата:
Что означает некрологовая лента(слева вверху) - Вопрос к хозяевам форума  

Цитата:
Ребята уберите ленту. А то получается не Форум а Ритуальная контора.

Вы темой не ошиблись?  


----------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов

Всего записей: 855 | Зарегистр. 07-11-2009 | Отправлено: 01:39 07-09-2016 | Исправлено: YURSHAT, 01:39 07-09-2016
ZVSRus1957



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

Всего записей: 43 | Зарегистр. 14-05-2015 | Отправлено: 20:54 10-09-2016
Scaramanga



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток, сразу оговорюсь это моя первая попытка создать инсталятор.
Вобщем суть проблемы такая: во время установки идет проверка на установленный Windows Managment Framework 4 и 5 версии, если они не установлены, то идет их закачка и затем установка.  
Вобщем проблема в следующем, MSU скачиваются нормально, затем идет установка WMF 4, тоже нормально, но следом при установк WMF 5 выскакивает ошибка  

Код:
Не удается установить обновление Windows "Обновление для ОС Windows (KB3134760)" из-за ошибки: 2147956481 "Не найдена сборка, на которую имеется ссылка." (Командная строка: ""C:\Windows\system32\wusa.exe" "C:\Users\test\AppData\Local\Temp\is-MICPK.tmp\Win7AndW2K8R2-KB3134760-x64.msu" /quiet /norestart      ")

При установки обновлений из командной строки подобных проблем нет, но в инно почему то устанавливаются только обновления по одному и следующее ставится только после перезагрузки.
Код установки с обработкой кодов возврата:
 

Код:
 
function SmartExec(prod : TProduct; var ResultCode : Integer) : boolean;
 
begin
  Exec('net', 'stop "wuauserv"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);  
  Exec('net', 'start "wuauserv"', '', SW_HIDE, ewWaitUntilTerminated, ResultCode);  
    if (LowerCase(Copy(prod.File,Length(prod.File)-2,3)) = 'exe') then begin
        Result := Exec(prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
    end else begin
        Result := ShellExec('', prod.File, prod.Parameters, '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
    end;
end;
 
function PendingReboot : boolean;
var    names: String;
begin
    if (RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'PendingFileRenameOperations', names)) then begin
        Result := true;
    end else if ((RegQueryMultiStringValue(HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Control\Session Manager', 'SetupExecute', names)) and (names <> ''))  then begin
        Result := true;
    end else begin
        Result := false;
    end;
end;
 
function InstallProducts: InstallResult;
var
    ResultCode, i, productCount, finishCount: Integer;
begin
    Result := InstallSuccessful;
    productCount := GetArrayLength(products);
 
    if productCount > 0 then begin
        DependencyPage := CreateOutputProgressPage(CustomMessage('depinstall_title'), CustomMessage('depinstall_description'));
        DependencyPage.Show;
 
        for i := 0 to productCount - 1 do begin
            if (products[i].InstallClean and (delayedReboot or PendingReboot())) then begin
                Result := InstallRebootRequired;
                break;
            end;
 
            DependencyPage.SetText(FmtMessage(CustomMessage('depinstall_status'), [products[i].Title]), '');
            DependencyPage.SetProgress(i, productCount);
 
            if SmartExec(products[i], ResultCode) then begin
                //setup executed; ResultCode contains the exit code
                //MsgBox(products[i].Title + ' install executed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
                if (products[i].MustRebootAfter) then begin
                    //delay reboot after install if we installed the last dependency anyways
                    if (i = productCount - 1) then begin
                        delayedReboot := true;
                    end else begin
                        Result := InstallRebootRequired;
                    end;
                    break;
                end else if (ResultCode = 0) then begin
                    finishCount := finishCount + 1;
                end else if (ResultCode = 3010) then begin
                    //ResultCode 3010: A restart is required to complete the installation. This message indicates success.
                    delayedReboot := true;
                    finishCount := finishCount + 1;
                end else begin
                    Result := InstallError;
                    break;
                end;
            end else begin
                //MsgBox(products[i].Title + ' install failed. Result Code: ' + IntToStr(ResultCode), mbInformation, MB_OK);
                Result := InstallError;
                break;
            end;
        end;
 
        //only leave not installed products for error message
        for i := 0 to productCount - finishCount - 1 do begin
            products[i] := products[i+finishCount];
        end;
        SetArrayLength(products, productCount - finishCount);
 
        DependencyPage.Hide;
    end;
end;
 
function PrepareToInstall(var NeedsRestart: boolean): String;
var
    i: Integer;
    s: string;
begin
    delayedReboot := false;
 
    case InstallProducts() of
        InstallError: begin
            s := CustomMessage('depinstall_error');
 
            for i := 0 to GetArrayLength(products) - 1 do begin
                s := s + #13 + '    ' + products[i].Title;
            end;
 
            Result := s;
            end;
        InstallRebootRequired: begin
            Result := products[0].Title;
            NeedsRestart := true;
 
            //write into the registry that the installer needs to be executed again after restart
            RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce', 'InstallBootstrap', ExpandConstant('{srcexe}'));
            end;
    end;
end;
 

 
Проверка и запуск установки обновлений:
 

Код:
 
 
const
    KB2819745_url = 'http://download.microsoft.com/download/3/D/6/3D61D262-8549-4769-A660-230B67E15B25/Windows6.1-KB2819745-x64-MultiPkg.msu';
    KB3134760_url = 'http://download.microsoft.com/download/2/C/6/2C6E1B4A-EBE5-48A6-B225-2D2058A9CEFB/Win7AndW2K8R2-KB3134760-x64.msu';
 
 procedure KB2819745();
var
    version: string;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', 'PowerShellVersion', version);
    if version < '4.0' then begin
 
    //if (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4)) then begin
         AddProduct('Windows6.1-KB2819745-x64-MultiPkg.msu',
                '/quiet /norestart',
                CustomMessage('KB2819745_title'),
                CustomMessage('KB2819745_size'),
                KB2819745_url,false,false);
    end;
end;
 
procedure KB3134760();
var
    version: string;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine', 'PowerShellVersion', version);
    if version < '5.0' then begin
 
    //if (minwinspversion(5, 0, 2) and maxwinspversion(5, 0, 4)) then begin
               AddProduct('Win7AndW2K8R2-KB3134760-x64.msu',
                '/quiet /norestart',
                CustomMessage('KB3134760_title'),
                CustomMessage('KB3134760_size'),
                KB3134760_url,false,false);
    end;
end;
 
 

Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 20:51 19-09-2016
codecs



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как добавить несколько строк в текстовый файл, который в кодировке UTF-16 ?

Всего записей: 2014 | Зарегистр. 22-07-2003 | Отправлено: 20:26 22-09-2016
Habib2302



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброе время суток. Прикрутите iswin7logo, и чтобы еще лого работало в деинсталляторе
https://yadi.sk/d/tozfDx34w6Sqp

Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 16:17 02-10-2016 | Исправлено: Habib2302, 15:16 04-10-2016
Habib2302



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

Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 13:57 05-10-2016
CKILL

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

Всего записей: 194 | Зарегистр. 17-02-2009 | Отправлено: 17:03 05-10-2016
Habib2302



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

Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 21:28 05-10-2016
CKILL

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

Цитата:
я и сам могу прикрутить

Отлично. Накидал пример в оригинальном скрипте iswin7

Всего записей: 194 | Зарегистр. 17-02-2009 | Отправлено: 22:18 05-10-2016 | Исправлено: CKILL, 22:20 05-10-2016
Habib2302



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CKILL
спс
 
Добавлено:
еще один вопрос. при использовании новой версии WinTB выкидывает ошибку после завершения работы инсталлятора
https://yadi.sk/d/4jdgeImxwKEmN
https://youtu.be/AH4fA529QoQ

Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 23:51 05-10-2016
CKILL

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Habib2302
Использовать более старую версию (где есть TaskBarDestroy; для корректной выгрузке WinTB.dll) или писать автору WinTB.dll (David.D.Rocco на krinkels.org)

Всего записей: 194 | Зарегистр. 17-02-2009 | Отправлено: 07:25 06-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