Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 3]

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 908 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 806 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Цитата murlakatamenka:
как это реализовано у R.G. Catalyst. »
R.G. Catalyst используют свою длл-ку для этого, которая специально для них была написана. Делай лого побольше размером, это единственный способ борьбы с запозданием окна WizardForm.
Цитата murlakatamenka:
как красиво это реализовать? »
Через сам ISDone. Тогда и по будет на прогрессбаре плавно отображаться, и отмена останется.

читать дальше »
Код: Выделить весь код
[Tasks]
Name: po; Description: Установить дополнительное ПО
Name: po\Runtime; Description: Microsoft Visual C++
Name: po\PhysX; Description: NVIDIA PhysX
Name: po\DX9; Description: Microsoft DirectX
...............................
// Подготавливаем переменную, содержащую всю информацию о выделенных задачах для ISDone.dll
// максимум 96 компонентов.
    Comps1:=0; Comps2:=0; Comps3:=0;
    TmpValue:=1;
    if IsTaskSelected('po\Runtime') then Comps1:=Comps1+TmpValue;     //компонент 1
    TmpValue:=TmpValue*2;
    if IsTaskSelected('po\PhysX') then Comps1:=Comps1+TmpValue;     //компонент 2
    TmpValue:=TmpValue*2;
    if IsTaskSelected('po\DX9') then Comps1:=Comps1+TmpValue;    //компонент 3

.........................................
        if not ISExec          ( 1, 0, 0, ExpandConstant('{src}\Redist\DirectX.exe'), '', ExpandConstant('{src}'),'Microsoft DirectX',false) then break;

        if not ISExec          ( 2, 0, 0, ExpandConstant('{src}\Redist\PhysX.exe'), '', ExpandConstant('{src}'),'Nvidia PhysX',false) then break;

        if not ISExec          ( 3, 0, 0, ExpandConstant('{src}\Redist\VCR_Ext_x86_x64.exe'), '/S', ExpandConstant('{src}\Redist'), 'Microsoft Visual C++',false) then break;
Цитата murlakatamenka:
третий вопрос про ISDone »
WizardForm.Caption:='Твоя надпись'; - найди эту строчку и забей там то, что тебе нужно.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:19, 18-10-2011 | #3631



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 62
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата Лександер:
Цитата:
как красиво это реализовать?
Через сам ISDone. Тогда и по будет на прогрессбаре плавно отображаться, и отмена останется. »
а это как?

кажется, понял, через ISExec + связь с компонентами (как и в случае установки, например, разных языков озвучки).

Последний раз редактировалось murlakatamenka, 18-10-2011 в 14:54.


Отправлено: 14:16, 18-10-2011 | #3632


Аватара для valyok666

Старожил


Сообщения: 241
Благодарности: 79

Профиль | Отправить PM | Цитировать


Лександер, можно узнать насчёт isPicture есть ли новая версия???

-------
Салтыков-Щедрин: "А надо учиться, учиться, учиться"


Отправлено: 15:28, 18-10-2011 | #3633


Новый участник


Сообщения: 30
Благодарности: 0

Профиль | Отправить PM | Цитировать


как обратиться к массиву #org[i] из кода?

нужно что-то типа

function GetWizardSetupType (Default:String):Integer;
begin
for i := 0 to {#CountSection} do
begin
if ('{#org[i]}' = WizardSetupType(false)) then
msgbox(inttostr(i),mbInformation, MB_OK);
Result:= i;

end
end;

как передать индекс переменной в коде?

Отправлено: 18:17, 18-10-2011 | #3634


Аватара для Sotonisto

Пользователь


Сообщения: 131
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


Возможно, просьба прозвучит нагло, но кто может с этого скрипта Catalyst (его выкладывали ранее):
а) Убрать слайдшоу и распаковку FreeArc, 7zip и пр. (делаю инсталл для себя, так что эти функции мне не интересны)
б) Добавить прогресс бар (мождо даже стандартный)
Сколько бы раз я своими кривыми ручонками не лез в скрип - результат всегда один... х_х
Прошу помочь и заранее благодарен.
P.S.: Знаю, что обычно все наоборот просят добавить FA и т.д., но меня больше привлекает визуальная сторона инсталла, нежели функциональность

-------
Большой шаг вперед, как правило, следствие хорошего пинка под зад.


Последний раз редактировалось Sotonisto, 18-10-2011 в 22:26.


Отправлено: 22:18, 18-10-2011 | #3635


Пользователь


Сообщения: 62
Благодарности: 19

Профиль | Отправить PM | Цитировать


Sotonisto, в этом скрипте слайдшоу идёт на этапе ssInstall с помощью ISSlideshow, его убрать легко
стандарнтый прорессбар скрывается и вместо него создаётся новый (вместе с другими кастомными контролами; смотрите функции CreateControls и HideControls)
распаковка идёт через ISDone, посмотрите скрипт, который с ним идёт и легко уберёте всё исдонное из скрипта.
и от фриарка грех отказываться, и жмёт хорошо, и репаки удобнее делать: дизайн инсталла отдельно, упаковка отдельно. легче тестировать и компилить только сетапку надо. простой пример. сделали инсталлятор, всё готово и проверено, скомпилили, а потом посмотрели, что, например, текст неправильный (например Battlefeild 3, а не Battlefield 3 ). казалось бы мелочь, но заново компилить 20 минут.
Цитата Sotonisto:
P.S.: Знаю, что обычно все наоборот просят добавить FA и т.д., но меня больше привлекает визуальная сторона инсталла, нежели функциональность »
isdone никак визуальную сторону не ухудшает ведь, а делать удобнее.
---------------
убрал слайдшоу и всё, что с ним связано (т.е. dll и слайды) - http://rghost.ru/26167341

Последний раз редактировалось murlakatamenka, 18-10-2011 в 22:52.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:39, 18-10-2011 | #3636


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здраствуйте
Меня попросили сделать установщик:
Запускаем установку >появляется окно где предлагается поменять стартовую страницу > после чего запускается установка exe файла (именно файла а не набора файлов) и всё.
Очень нужно, помогите пожалуйста, я в этом ничего не понимаю и готов оплатить труды за написание такого кода.
Заранее спасибо

Отправлено: 02:08, 19-10-2011 | #3637


Пользователь


Сообщения: 62
Благодарности: 19

Профиль | Отправить PM | Цитировать


Лександер, только сейчас заметил "читать дальше" с кодом
-------------------------------------------------------------------------------
Цитата:
появляется окно где предлагается поменять стартовую страницу
домашнюю страницу браузера, это имеется ввиду?
типа появляется окошко с надписью "Домашняя страница будет изменена на "адрес_новой_homepage"" с кнопками OK и Cancel и вне зависимости от выбора пользователя начинается установка программы.
---------------------------------------
для смены homepage IE (при компиляции [_Code] заменить на [code])
читать дальше »
Код: Выделить весь код
; 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={{12C06398-3F34-4DDE-BD66-6D263C0FC8FA}
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: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked

[Files]
Source: "C:\Program Files (x86)\Inno Ultra\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; 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

[_Code]
procedure InitializeWizard();
begin
  if MsgBox('Сменить домашнюю страницу на {#MyAppURL} ?',mbconfirmation, mb_yesno) = IDYES then
    begin
      RegWriteStringValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Internet Explorer\Main',
    'Start Page', ExpandConstant('{#MyAppURL}'));
    end;
end;

Последний раз редактировалось murlakatamenka, 19-10-2011 в 03:55.

Это сообщение посчитали полезным следующие участники:

Отправлено: 03:38, 19-10-2011 | #3638


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, всё верно, домашнюю страницу поменять, но с предложением (галочка) Поменять стартовую страницу на www_ru?
Спасибо за код. Только вот хотелось бы чтобы без предложения запустить программу, а чтобы сразу после распаковки файла, exe сразу запускалась. Вечером продолжу танцевать с бубном
-------------------
С помощью команды DisableFinishedPage=yes убрал последнее окно, после чего запускается exe без запроса.
Галочки с предложением заменить страницу нету, но и страница не меняется =(
И ещё я не пойму, почему когда я заменил DefaultDirName={pf}\{#MyAppName} на .....={tmp}\{#MyAppName} ничего не изменилось
-------------------
Поставил DefaultDirName=no и поменял в разделе [Files] DestDir {app} на DestDir {tmp} и также в [Run], заработало.
С заменой стартовой страницы "разобрался", изначально пропустил фразу
Цитата murlakatamenka:
(при компиляции [_Code] заменить на [code]) »
Спасибо огромное за помощь! На самом деле я понял что по чуть чуть и можно многому научиться, главное читать по больше

Последний раз редактировалось 6apakyda, 19-10-2011 в 12:27.


Отправлено: 10:53, 19-10-2011 | #3639


Пользователь


Сообщения: 62
Благодарности: 19

Профиль | Отправить PM | Цитировать


6apakyda, а чего в {tmp} прога ставится?
Цитата 6apakyda:
С помощью команды DisableFinishedPage=yes убрал последнее окно, после чего запускается exe без запроса. »
дурной тон это, обязательно надо спрашивать у пользователя, нужно ли запускать программу после установки или нет.
вот с галочкой код (ещё раз повторю, он только для Internet Explorer)

читать дальше »
Код: Выделить весь код
; 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={{12C06398-3F34-4DDE-BD66-6D263C0FC8FA}
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: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "homepage"; Description: "Ñäåëàòü {#MyAppURL} ñòàðòîâîé ñòðàíèöåé"; GroupDescription: "{cm:AdditionalIcons}";

[Files]
Source: "C:\Program Files (x86)\Inno Ultra\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
; 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

[Registry]
Root: HKCU; Subkey: "SOFTWARE\Microsoft\Internet Explorer\Main"; ValueName: "Start Page"; ValueType: String; ValueData: {#MyAppName}; Tasks: "homepage"; Flags: noerror

[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, "&", "&&")}}"; Flags: nowait postinstall skipifsilent


вот рекомендую почитать - Inno Setup (Инструкция по Inno Setup - Инструкция по Inno Setup в формате PDF для начинающих от sjwrec.)
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:46, 19-10-2011 | #3640



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 3]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход