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

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



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

Цитата:
Просто изменить размер инсталлятора не достаточно, так как придется изменять размеры всех остальных элементов установщика

Тоесть если я вас правильно понял то нужно растягивать все страницы и перемещать кнопки что ли?

Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 20:52 29-12-2014
dodakaedr



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

Цитата:
если я вас правильно понял то нужно растягивать все страницы и перемещать кнопки что ли?

Почти... страницы вы растяните через wizardform(в предыдущем моем посте), а кнопки, OuterNotebook, InnerNotebook, MainPanel и другие элементы тоже надо будет подгонять под размер установщика  
Пример

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 22:15 29-12-2014
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
Ещё один тупой вопрос. Как сделать окно инсталлятора по центру при открытии? После изменения размера смещение в право и вниз.

Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 12:05 31-12-2014
dodakaedr



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

Код:
WizardForm.Position:=poDesktopCenter;

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 19:28 31-12-2014
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
Большущее спасибо и с наступающим Новым Годом!
Пожалуйста подскажи, как растянуть картинку на странице завершения.
Вот секция код:
Код:
 
[Code]
 
procedure InitProgressBar(hwnd:thandle; l,t,w,h,speed:integer; clFore, clBack: integer); external 'InitProgressBar@files:IsProgressBar.dll stdcall';
procedure DeinitProgressBar; external 'DeinitProgressBar@files:IsProgressBar.dll stdcall';
 
procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageId = wpInstalling then
  begin
  Wizardform.StatusLabel.Font.Size:=10; Wizardform.StatusLabel.Font.Style:= [fsBold];
  Wizardform.Cancelbutton.Hide;
  InitProgressBar(WizardForm.Handle, 90, 200, 418, 40, 100, clgreen, clwhite)
  end;
  If CurPageId = wpFinished then
  begin
    DeinitProgressBar;
  end;
end;
 
procedure InitializeWizard();
begin
    with WizardForm do
    begin
        Position := poDesktopCenter;
        ClientWidth := ScaleX( 600 );
        ClientHeight := ScaleY ( 480 );
 
        WelcomeLabel1.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 0 ), ScaleY( 0 ) );
        WelcomeLabel2.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 0 ), ScaleY( 0 ) );
        WizardBitmapImage.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 600 ), ScaleY( 450 ) );
        OuterNotebook.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( ClientWidth ), ScaleY( 440 ) );
        InnerNotebook.SetBounds( ScaleX( 12 ), ScaleY( 63 ), ScaleX( 600 ), ScaleY( 370 ) );
        TasksList.SetBounds( ScaleX( 15 ), ScaleY( 15 ), ScaleX( 555 ), ScaleY( 355 ) );
        SelectTasksLabel.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 0 ), ScaleY( 100 ) );
        ReadyLabel.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 0 ), ScaleY( 0 ) );
        ReadyMemo.SetBounds( ScaleX( 15 ), ScaleY( 15 ), ScaleX( 555 ), ScaleY( 355 ) );
        Bevel1.SetBounds( ScaleX( 0 ), ScaleY( 60 ), ScaleX( ClientWidth ), ScaleY( 3 ) );
        Bevel.SetBounds( ScaleX( 0 ), ScaleY( 440 ), ScaleX( ClientWidth ), ScaleY( 2 ) );
        BeveledLabel.Top := ScaleY( 294 );
        StatusLabel.SetBounds( ScaleX( 85 ), ScaleY( 100 ), ScaleX( 360 ), ScaleY( 20 ) );
        ProgressGauge.SetBounds( ScaleX( 0 ), ScaleY( 0 ), ScaleX( 0 ), ScaleY( 0 ) );
        BackButton.SetBounds( ScaleX( 352 ), ScaleY( 450 ), ScaleX( 75 ), ScaleY( 23 ) );
        NextButton.SetBounds( ScaleX( 432 ), ScaleY( 450 ), ScaleX( 75 ), ScaleY( 23 ) );
        CancelButton.SetBounds( ScaleX( 512 ), ScaleY( 450 ), ScaleX( 75 ), ScaleY( 23 ) );
        MainPanel.Width := ScaleX( ClientWidth );
        WizardSmallBitmapImage.Left := ScaleX( ClientWidth - 58 )
    end;
end;
 
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=False
  Cancel:=True
end;


Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 20:10 31-12-2014
dodakaedr



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

Цитата:
 как растянуть картинку на странице завершения.  

элемент WizardBitmapImage2
Код:
WizardForm.WizardBitmapImage2.Width:=ScaleX(235);

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:47 31-12-2014
Igimon

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
В имеющемся скрипте очень много функций procedure, все работает как надо.
 
дописал еще одну функцию
 
procedure AboutSetupClick;
begin
//здесь обрабатываем нажатие на пункт меню "О программе ..."
end;
 
оказалось не работает. Как заставить данную функцию работать что нужно дописать или переписать?

Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 00:08 02-01-2015
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возможно ли сделать так что бы при наведении на CheckBox созданный стандартным способом в секции [Tasks], появлялось описание задачи в виде небольшого окна, например как в WPI?

Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 19:20 02-01-2015
BUU



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

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 21:18 02-01-2015
dodakaedr



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

Код:
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
 
[Types]
Name: full; Description: полная установка; Flags: iscustom
 
[Components]
Name: "main"; Description: "Показать кастомную страничку";  
 
[Code]
var
AkkPage: TWizardPage;
 
procedure InitializeWizard();
begin
 AkkPage := CreateCustomPage(wpSelectTasks, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');
end;
 
function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID = AkkPage.id) then Result := not IsComponentSelected('main');
end;

 
Добавлено:
Igimon
пример из справки

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 23:57 02-01-2015
BUU



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
Код помог, но страница уже есть у меня и прописана после приветствия, если задать этот код, то сразу переходит к этой странице, но никак после выбора компонента
 
function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID = wpWelcome) then Result := not IsComponentSelected('Mode/SPOnly');
end;

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 01:07 03-01-2015
dodakaedr



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

Цитата:
if (PageID = wpWelcome) then Result := not IsComponentSelected('Mode/SPOnly');  

 

Код:
function ShouldSkipPage(PageID: Integer): Boolean;  
begin  
  if (PageID = AkkPage.id) then Result := not IsComponentSelected('Mode/SPOnly');  
end;

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 01:11 03-01-2015
BUU



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

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 01:35 03-01-2015 | Исправлено: BUU, 01:39 03-01-2015
dodakaedr



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

Цитата:
Возможно ли сделать так что бы при наведении на CheckBox созданный стандартным способом в секции [Tasks], появлялось описание задачи в виде небольшого окна, например как в WPI?

пример от saurn
Подробнее...
 
BUU

Цитата:
А если у меня несколько компонентов отвечают за страницу, как указать несколько чтоб он считал их?

 

Код:
function ShouldSkipPage(PageID: Integer): Boolean;  
begin  
  if (PageID = AkkPage.id) then Result := not IsComponentSelected('Mode/SPOnly') or not IsComponentSelected('другой компонент');  
end;

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 02:18 03-01-2015
BUU



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

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 02:35 03-01-2015
dodakaedr



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

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 09:36 03-01-2015
CUTA



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

Цитата:
пример от saurn

Скрипт не компилируется, ошибка. Что не так в скрипте?
 

Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 09:45 03-01-2015
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CUTA
Какую ошибку, какая у вас версия inno?

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 10:13 03-01-2015
CUTA



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

Цитата:
Какую ошибку, какая у вас версия inno?

Версия Inno setup с оф. сайта 5.5.5 unicode
 
Вот ошибка

Всего записей: 1169 | Зарегистр. 03-05-2014 | Отправлено: 10:19 03-01-2015
ultimo



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет)
 
Хочу разукрасить InnerNotebook с помощью функции ImgLoad (botva2)
 

Код:
 
ImgLoad(InnerNotebook.Handle, 'WizardImage.jpg', ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, True, True);
 
ImgApplyChanges(InnerNotebook.Handle);
 

 
Не работает так. WizardForm.Handle работает, но InnerNotebook и OuterNotebook перекрывают изображение. Но убирать их я не хочу.
 
Есть решение?

Всего записей: 177 | Зарегистр. 19-05-2012 | Отправлено: 10:58 03-01-2015 | Исправлено: ultimo, 11:03 03-01-2015
Открыть новую тему     Написать ответ в эту тему

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