Имя пользователя:
Пароль:
 | Правила  

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]

Отправлено: 11:48, 10-03-2014

 

Аватара для Dodakaedr

Ветеран


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

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


Всем привет! Подскажите, реально ли задать идентификатор программы (AppID) во время установки? Задать в зависимости от выбранной кнопки?
читать дальше »
Код: Выделить весь код
[Setup]
AppId={code:GetAppID}

[Co de]
procedure GetAppID(id: string): String;
begin
if Bus.Checked then
id := '{{CA297C8C-88CC-4708-9177-4CD49DBE87B4}';
if Eng.Checked then
id := '{{8177DA7A-1D72-4C0A-9B22-BA030AEF3C58}';
if Ext.Checked then
id := '{{A9E0C8A3-E5C7-4D5D-A893-663D09782286}';
if Net.Checked then
id := '{{D72E97FC-7702-4385-9679-0E3515AB922C}';
end;

-------
Inno Setup 5 Ultra Unicode


Отправлено: 23:56, 12-09-2014 | #1531



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

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


Аватара для kotyarko@fb

Старожил


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

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


Цитата Dodakaedr:
Подскажите, реально ли задать идентификатор программы (AppID) во время установки? Задать в зависимости от выбранной кнопки? »
Да.

читать дальше »
Код: Выделить весь код
[Setup]
AppId={code:GetAppID}

[Сode]
var  
  32RadioButton: TNewRadioButton;
  64RadioButton: TNewRadioButton;

function GetAppID(const Value: string): string;
var
  AppID: string;
begin
  if Assigned(Ver32RadioButton) then
  begin
    AppID := 'FDFD4A34-4A4C-4795-9B0E-04E5AB0C374D';   //это то, что будет приниматься за AppID до того, пока не выбран вариант радиоБаттонов.
    if 32RadioButton.Checked then
      Result := AppID + '_32'
    else
      Result := AppID + '_64';
  end;
end;

procedure InitializeWizard;
var
  Page: TWizardPage;
begin
  Page := CreateCustomPage(wpWelcome, '2', '1');
  32RadioButton := TNewRadioButton.Create(WizardForm);
  32RadioButton.Parent := Page.Surface;
  32RadioButton.Checked := True;
  32RadioButton.Caption := 'Install 32-bit version';
  64RadioButton := TNewRadioButton.Create(WizardForm);
  64RadioButton.Parent := Page.Surface;
  64RadioButton.Top := 32RadioButton.Top + 32RadioButton.Height + 4;
  64RadioButton.Caption := 'Install 64-bit version';
end;

p.s. а зачем его менять?

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Последний раз редактировалось kotyarko@fb, 13-09-2014 в 18:26.

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

Отправлено: 00:14, 13-09-2014 | #1532


Аватара для Dodakaedr

Ветеран


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

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


Цитата kotyarko@fb:
p.s. криво лежит под тегом code, поэтому вставил так. »
Вставте [u] [ /u] между Co и de
Код: Выделить весь код
 [Code]
Цитата kotyarko@fb:
p.p.s. а зачем его менять? »
В моем проэкте 4 версии программы, вот и надо задать для каждой программы отдельный идентификатор

-------
Inno Setup 5 Ultra Unicode


Отправлено: 17:51, 13-09-2014 | #1533


Аватара для kotyarko@fb

Старожил


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

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


Цитата Dodakaedr:
Вставте [u] [ /u] между Co и de »
Нет, прикол не в этом. Секция [Setup], почему-то, выделялась и автоматически выносилась за теги кода и спойлера.

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Отправлено: 17:57, 13-09-2014 | #1534


Аватара для Dodakaedr

Ветеран


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

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


Цитата kotyarko@fb:
Нет, прикол не в этом »
Именно в нем
с [u] [ /u]:
Код: Выделить весь код
[Setup]
AppId={code:GetAppID}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}

[Code]
без:
[code]
[Setup]
AppId={code:GetAppID}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}

Код: Выделить весь код
 

-------
Inno Setup 5 Ultra Unicode


Отправлено: 18:02, 13-09-2014 | #1535


Аватара для kotyarko@fb

Старожил


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

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


Цитата Dodakaedr:
Именно в нем »
Не. Вот сейчас без [u][ /u] нормально отредактировалось.

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Отправлено: 18:26, 13-09-2014 | #1536


Аватара для Dodakaedr

Ветеран


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

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


Подскажите, как можно задать имя программы в деинсталяторе в зависимости от кнопки?

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 17-09-2014 в 21:19.


Отправлено: 19:16, 13-09-2014 | #1537


SHVtYW4=


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

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


Цитата kotyarko@fb:
нормально отредактировалось. »
Что у вас нормально отредактировалось?
В данном случае: у вас в [Code] - вместо латинской "C", русская "С". Так делать вообще не следует.

Прочтите здесь и здесь.
Потренироваться можете здесь.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:52, 13-09-2014 | #1538


Аватара для kotyarko@fb

Старожил


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

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


Nordek, спасибо, буду просто приписывать какой-либо символ к названию секции.

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Отправлено: 21:21, 13-09-2014 | #1539


Аватара для AlexALSP

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


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

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


Добрый вечер. Подскажите пожалуйста, как сделать фоновый звук во время установки, что бы играла какая нибудь композиция с начала установки и до нажатия кнопки Завершить.

Если есть готовый код , дайте пожалуйста , а то уже листать устал 3 часа глаза как у рака.

Вот код на фоновый слайд но нужно добавить музон.

Просьба к знатокам , посмотреть данный код , может где накосячил , но он как не странно работате , но все же .

И сюда же прикрутить либо отдельным блоком добавить код на воспроизведение фонового звука mp3 в процессе установки.

Задачи от кода.:

1. Фоновая композиция от начала установки до нажатия кнопки Завершить
2. Слайдер изображений во время установки
3. HTTP урл

Заранее спасибо.

Код: Выделить весь код

// кликабельная текстовая http-ссылка в левом нижнем углу инсталлера и слайдер
var
MouseLabel,SiteLabel: TLabel;

procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://apocalypse.moy.su', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;


type
  TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
  TimerID: LongWord;
  CurrentPicture:integer;
  PicList: TStringlist;
  BackgroundForm: TForm;

function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall';
procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';
procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';
procedure ShowImage(ipath:PAnsiChar; Effect:integer); external 'ShowImage@files:isslideshow.dll stdcall';

procedure InitializeWizard();
begin
  BackgroundForm:= TForm.Create(nil);
  BackgroundForm.BorderStyle:= bsNone;
  BackgroundForm.Color:=clBlack;
  BackgroundForm.SetBounds(0, 0, GetSystemMetrics(0), GetSystemMetrics(1))
  BackgroundForm.Visible:=True;
  BackgroundForm.enabled:= false;
  PicList:=tstringlist.Create;
  ExtractTemporaryFile('Back.jpg');
  ExtractTemporaryFile('1.jpg');
  ExtractTemporaryFile('2.jpg');
  ExtractTemporaryFile('3.jpg');
  ExtractTemporaryFile('4.jpg');
  ExtractTemporaryFile('5.jpg');
  ExtractTemporaryFile('6.jpg');
  ExtractTemporaryFile('7.jpg');
  ExtractTemporaryFile('8.jpg');
  ExtractTemporaryFile('9.jpg');
  ExtractTemporaryFile('10.jpg');
  ExtractTemporaryFile('11.jpg');
 
  piclist.add(ExpandConstant('{tmp}') + '\1.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\2.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\3.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\4.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\5.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\6.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\7.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\8.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\9.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\10.jpg');
  piclist.add(ExpandConstant('{tmp}') + '\11.jpg');

  BackgroundForm.show;
  InitializeSlideShow(BackgroundForm.Handle, 0, 0, GetSystemMetrics(0), GetSystemMetrics(1), true, 1);
  ShowImage(ExpandConstant('{tmp}') + '\Back.jpg', 1);


MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clBlue
SiteLabel.Caption:='Alex Ltd and System Perverted 2000 - 2014'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm

end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
  thePicture: integer;
  delta: double;
begin
  delta := WizardForm.ProgressGauge.Max / ( piclist.Count );
  thePicture := round( WizardForm.ProgressGauge.Position / delta );
  if( thePicture <> CurrentPicture  ) then
   begin
    CurrentPicture := thePicture;
    try
      ShowImage(piclist.strings[CurrentPicture - 1], 1);
    except
    end;
   end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageID=wpInstalling then
   begin
    with WizardForm do
     begin
      hide;
      MainPanel.Visible:=False;
      Bevel1.Visible:=False;
      setbounds(ScaleX(GetSystemMetrics(0)-420), ScaleY(GetSystemMetrics(1)-167), ScaleX(395), ScaleY(142));
      InnerNotebook.setbounds(ScaleX(10), ScaleY(10), ScaleX(370), InnerNotebook.height);
      StatusLabel.setbounds(ScaleX(0), ScaleY(0), InnerNotebook.Width, StatusLabel.height);
      FileNameLabel.setbounds(ScaleX(0), ScaleY(20), InnerNotebook.Width, FileNameLabel.height);
      ProgressGauge.Top:=ScaleY(40);
      ProgressGauge.Width:=InnerNotebook.Width;
      CancelButton.Left:=ScaleX(154);
      CancelButton.Top:=ScaleY(80);
      CancelButton.bringtofront;
      show;
     end;
    TimerID:=SetTimer(0, 0, 200, WrapTimerProc(@OnTimer, 4));
   end;

if CurPageID=wpFinished then
  begin
    WizardForm.Visible:=False;
    WizardForm.setbounds((GetSystemMetrics(0)-WizardForm.Width) div 2, (GetSystemMetrics(1)-WizardForm.Height) div 2, ScaleX(502), ScaleY(392));
    WizardForm.Visible:=True;
    showimage(ExpandConstant('{tmp}') + '\Back.jpg', 1);
  end;
end;

procedure DeinitializeSetup();
begin
 DeinitializeSlideShow;
 KillTimer(0, TimerID);
end;

Последний раз редактировалось AlexALSP, 14-09-2014 в 22:36.


Отправлено: 22:21, 14-09-2014 | #1540



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход