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

Компьютерный форум 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

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


Я пользуюсь "индусским" способом - делаю две одинаковых строчки в секции Files но в первой Check: IsWin64, а во второй Check: Not IsWin64
Это сбивает инно с толку и он не показывает размер.

[Files]
Source: report.xml; DesDir: {app}; components: a; Check: IsWin64
Source: report.xml; DesDir: {app}; components: a; Check: Not IsWin64

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 17:26, 18-05-2011 | #1641



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

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


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


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

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


Цитата Лександер:
lmiol, Поиск -великая вещ, ну почему так лениво потратить на него пять минут? »
насчет поиска вы то знали что на странице было, а я ничего не нашел, я то и искать не понял что нужно вообще (а так спасибо конечно)
cкрипт добавил но это не то (мб надо еще чтото переделать в коде?)
при выборе простого пользователя установка идет своим чередом
а при выборе продвинутого идет выбор компонентов, а мне нада чтобы при том и при том выборе был выбор компонентов, только разных файлов

Последний раз редактировалось lmiol, 18-05-2011 в 21:04.


Отправлено: 20:42, 18-05-2011 | #1642


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата ArtemYa:
Подскажите пожалуйста, как в окне "Выбор компанентов" отключить вывод размерности файлов при установке. »
ArtemYa,
Код: Выделить весь код
[Setup]
ShowComponentSizes=false
lmiol, у вас 5 компонентов. Какие компоненты должны входить в PRO, а какие в STANDART?
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:03, 18-05-2011 | #1643


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


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

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


El Sanchez:
Полный скрипт
Код: Выделить весь код
[Setup]
AppName=Quake Live
AppVerName="Quake Live"
AppPublisher=Mio Dark Project
CreateAppDir=no
DefaultGroupName=Mio Dark Project\Quake Live
AllowNoIcons=yes
OutputDir=Output
OutputBaseFilename=Quake Live
SetupIconFile=setup.ico
Compression=lzma/ultra
SolidCompression=yes
ShowTasksTreeLines=yes
DisableProgramGroupPage=yes
WizardImageFile=Big.bmp
WizardSmallImageFile=Small.bmp
UninstallDisplayIcon={app}\Uninstall\uninstall.ico
UninstallFilesDir={app}\Uninstall
WizardImageStretch=no
AlwaysShowComponentsList=no

[Languages]
Name: ru; MessagesFile: compiler:Languages\Russian.isl;

[Types]
Name: "full"; Description: "Все компоненты";
Name: "custom"; Description: "Выбрать компоненты"; Flags:  iscustom

[Components]
Name: "main"; Description: "Главные файлы Quake Live"; Types: full custom; Flags: fixed
Name: "main2"; Description: "Главные файлы Quake Live Premium"; Types: full custom; Flags: fixed
Name: "browser2"; Description: "Портативный Firefox под Quake Live Premium"; Types: full custom
Name: "plug"; Description: "Плагин Quake Live"; Types: full custom
Name: "browser"; Description: "Портативный Firefox под Quake Live"; Types: full custom
Name: "manual"; Description: "Руководство и Награды"; Types: full custom
Name: "anti"; Description: "Античит PunkBuster"; Types: full custom

[CustomMessages]
HeaderLabelPage=Выберите тип вашего аккаунта
MyRadioCaption_1=Standart
MyRadioCaption_2=Premium / Pro
PageTextHeader=На этой странице Вы можете выбрать тип вашего аккаунта, который вы используете в игре.
MyText_1=Будут установлены файлы которые доступны для игроков без подписки.
MyText_2=Будут установлены файлы которые доступны для игроков с Premium/Pro подпиской.


[Tasks]
Name: "desktopicon"; Description: "Создать ярлык на Рабочем Столе"; GroupDescription: "{cm:AdditionalIcons}"

[Files]
source: "uninstall.ico"; Components: main; DestDir: "{code:DetectWindows}\uninstall"; Flags: ignoreversion
Source: "usercur\*"; Components: main; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "usercur2\*"; Components: manual; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "programfiles\*"; Components: browser; DestDir: "{pf}\"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
Source: "pk3standart\*"; Components: main; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension nocompression
Source: "pk3Premium\*"; Components: main; DestDir: "{code:DetectWindows}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension nocompression
Source: "pbsvc.exe" ;Components: anti;DestDir: "{tmp}"; Flags: ignoreversion
Source: "QuakeLiveNP_433.msi" ;Components: plug;DestDir: "{tmp}"; Flags: ignoreversion

[cоde]
function GetModuleHandle(lpModuleName: LongInt): LongInt;
 external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt;
 external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth,
       cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;
 external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt;
 external 'DestroyIcon@user32.dll stdcall';

const
   DI_NORMAL = 3;

var
  MyNewPage: TWizardPage;
  Rect: TRect;
  HIcon: LongInt;
  AIconFileName: String;
  MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;

procedure GetInstTypePage();
begin
  MyNewPage := CreateCustomPage(wpWelcome,
    ExpandConstant('{cm:HeaderLabelPage}'), '');



  with TNewStaticText.Create(WizardForm) do
  begin
    Width := WizardForm.InnerNotebook.Width;
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:PageTextHeader}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_1 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_1 do
  begin
    Top := ScaleY(50);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_1}');
    Checked := True;
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(16);
    Top := ScaleY(68);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_1}');
    Parent := MyNewPage.Surface;
  end;

  MyRadioBtn_2 := TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_2 do
  begin
    Top := ScaleY(120);
    Width := ScaleX(150);
    Caption := ExpandConstant('{cm:MyRadioCaption_2}');
    Parent := MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do
  begin
    Left := ScaleX(16);
    Top := ScaleY(138);
    Width := WizardForm.InnerNotebook.Width - ScaleX(60);
    Height := ScaleY(26);
    WordWrap := True;
    Caption := ExpandConstant('{cm:MyText_2}');
    Parent := MyNewPage.Surface;
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID >= wpSelectDir) and (PageID < wpReady) and (MyRadioBtn_1.Checked) then
     Result := True;
end;

procedure InitializeWizard();
begin
  GetInstTypePage();
end;
function DetectWindows(s: string): string;
var
  SubKeyName, ResultStr: string;
begin
  SubKeyName:= 'Software\Microsoft\Windows NT\CurrentVersion';
  RegQueryStringValue(HKLM, SubKeyName, 'ProductName', ResultStr);
  if Pos('XP', ResultStr) > 0 then
    Result:= ExpandConstant('{%APPDATA}\id Software')
  else
  if Pos('Vista', ResultStr) > 0 then
    // не знаю, будет ли это C:\Users\Ваше_имя_пользователя\AppData\LocalLow\id Software
    // проверить не где
    Result:= ExpandConstant('{%APPDATA}\LocalLow\id Software')
  else Result:= '{%APPDATA}\LocalLow\id Software'; // сюда нужно вписать путь по дефолту, т.е. если не XP или Vista
end;


в Стандарт должны входить такие компоненты:
Код: Выделить весь код
Name: "main"; Description: "Главные файлы Quake Live"; Types: full custom; Flags: fixed
Name: "plug"; Description: "Плагин Quake Live"; Types: full custom
Name: "browser"; Description: "Портативный Firefox под Quake Live"; Types: full custom
Name: "manual"; Description: "Руководство и Награды"; Types: full custom
Name: "anti"; Description: "Античит PunkBuster"; Types: full custom
а в Премиум
Код: Выделить весь код
Name: "main2"; Description: "Главные файлы Quake Live Premium"; Types: full custom; Flags: fixed
Name: "plug"; Description: "Плагин Quake Live"; Types: full custom
Name: "browser2"; Description: "Портативный Firefox под Quake Live Premium"; Types: full custom
Name: "manual"; Description: "Руководство и Награды"; Types: full custom
Name: "anti"; Description: "Античит PunkBuster"; Types: full custom
(так как у меня в премиуме устанавливаться должны и стандартные файлы то рk3standart папка должна быть и там и там (т.е. и в Стандарт и в Премиум должна быть строчка Главные файлы Quake Live с флагом fixed но в стандарте в ней pk3standart, а в премиуме pk3standart и pk3premium)

Последний раз редактировалось lmiol, 18-05-2011 в 22:40.


Отправлено: 22:29, 18-05-2011 | #1644


Аватара для Bond01

Ветеран


Автор проектов


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

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


Привет всем.
Цитата:
Подскажите: Как внести данные(скрипт) в реестр(ключ), после установки программы, например с помощью рег-файла чтобы инсталятор искал рядом этот файлик, а потом тихо запускал?
Это решение нужно для аддона, чтобы пользователи могли вносить свои ключи.
Сейчас ищу решение, чтобы сначала запускался файл реестра, а потом уже шла установка программы, если ключ верен.

Отправлено: 19:21, 19-05-2011 | #1645


Старожил


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

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


Что надо прописать в скрипте чтобы после установки удалились прописаные файлы

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 20:04, 19-05-2011 | #1646


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Bond01, Можно модернизировать тот пример, который я давал:
читать дальше »
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[code]
var
RegClick: TNotifyEvent;
procedure Reg;
begin
RegEdit := ExpandConstant('{sys}\reg.exe');// вызов консольной системной утилиты для работы с реестром
reg := ExpandConstant('{src}\') + 'reg.reg'; // берем рег-файл рядом с инсталлом
Exec(RegEdit, ' import ' + ' ' + AddQuotes(reg),ExpandConstant('{src}'),SW_HIDE, ewWaitUntilTerminated, ResultCode); // импортируем файл реестра
end;

procedure RegClick();
begin
if WizardForm.CurPageID=wpReady then // добавляем клик только на странице готовности
//begin // Проверить, как стабильнее работает
Reg // выполняем procedure Reg;
//end; // Проверить, как стабильнее работает
OldClick(Sender); // выполняем родной клик
end;

procedure InitializeWizard();
begin
OldClick:= WizardForm.NextButton.OnClick; // Заставляем не забыть родной клик
WizardForm.NextButton.OnClick:=@RegClick; // Задаем новый клик
end;
Вносится в реестр будет по нажатии кнопки далее на странице готовности.

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


Последний раз редактировалось Gnom_aka_Lexander, 19-05-2011 в 22:44.

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

Отправлено: 22:36, 19-05-2011 | #1647


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


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

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


ребят, а кто может подсказать источники с репаками ПО (.NET Framework, G4WL [Games for Windows Live]) ?
нужны они для уменьшения размера репака (последний G4WL 250 мб весит)

Отправлено: 02:06, 20-05-2011 | #1648


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата murlakatamenka:
ребят, а кто может подсказать источники с репаками ПО (.NET Framework, G4WL [Games for Windows Live]) ?
нужны они для уменьшения размера репака (последний G4WL 250 мб весит) »
Системные компоненты НЕЛЬЗЯ перепаковывать. Сам догадаешься почему?

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 08:28, 20-05-2011 | #1649


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


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

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


R.i.m.s.k.y., да ладно, расскажите почему же ?
есть репаки дотнет фрэймворка, и авторы xp-сборок (loner, zver) их спокойно и без проблем используют
пример
вот ещё вопрос, как слелать это (2 неактивных чекнутых чекбокса с двумя вариантами exlusive-ов)?

Последний раз редактировалось murlakatamenka, 20-05-2011 в 13:04.


Отправлено: 12:03, 20-05-2011 | #1650



Компьютерный форум 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




 
Переход