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

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

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

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

Ветеран


Contributor


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


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

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


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


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


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

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

Ветеран


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

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


Цитата Johny777:
вот так я делаю с кастомными чекбоксами »
мне неохота с кастомными чекбоксами заморачиваться, сделано все стандартно
На каком шаге ты это делаешь?

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

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

Отправлено: 15:47, 12-03-2012 | #1061



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

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


Аватара для Johny777

Ветеран


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

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


by_gangster,
простым дублированием
читать дальше »
Код: Выделить весь код
;      Ñêðèïò ñîçäàí ñ ïîìîùüþ
; IS GameScript Generator by South
;   ñïåöèàëüíî äëÿ www.csmania.ru

[Setup]
SourceDir=.
OutputDir=Setup
AppName=1
AppVerName=1
AppVersion=1
AppPublisherURL=http://forum.csmania.ru/
AppSupportURL=http://forum.csmania.ru/
AppUpdatesURL=http://forum.csmania.ru/
DefaultDirName={pf}\1
DefaultGroupName=1
AllowNoIcons=yes
OutputBaseFilename=setup
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1



[_Code]
const
  dURL=2;

var
  URLLabel,URLLabelShadow:TLabel;       /// url 1
  URLLabel_2,URLLabelShadow_2:TLabel;    /// url 2


procedure URLLabelClick(Sender: TObject);     /// url 1
var
  ErrorCode:integer;
begin
  ShellExec('open','http://forum.csmania.ru/','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;

procedure URLLabelClick_2(Sender: TObject);    /// url 2
var
  ErrorCode:integer;
begin
  ShellExec('open','http://forum.oszone.net/','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;

procedure URLLabelMouseDown(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top+dURL;
  URLLabel.Left:=URLLabel.Left+dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
  URLLabel.Font.Color:=clBlue;
  URLLabelShadow.Visible:=False;
end;

procedure URLLabelMouseUp(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top-dURL;
  URLLabel.Left:=URLLabel.Left-dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
  URLLabel.Font.Color:=clMaroon;
  URLLabelShadow.Visible:=True;
end;

  /// url 2
procedure URLLabelMouseDown_2(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top+dURL;
  URLLabel.Left:=URLLabel.Left+dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style+[fsUnderline];
  URLLabel.Font.Color:=clBlue;
  URLLabelShadow.Visible:=False;
end;

procedure URLLabelMouseUp_2(Sender:TObject;Button:TMouseButton;Shift:TShiftState;X,Y:Integer);
begin
  URLLabel.Top:=URLLabel.Top-dURL;
  URLLabel.Left:=URLLabel.Left-dURL;
  URLLabel.Font.Style:=URLLabel.Font.Style-[fsUnderline];
  URLLabel.Font.Color:=clMaroon;
  URLLabelShadow.Visible:=True;
end;

procedure InitializeWizard;
/// url 1
begin
  URLLabelShadow:=TLabel.Create(WizardForm);
  with URLLabelShadow do begin
    Top:=ScaleY(331);
    Left:=ScaleX(25);
    Caption:='http://forum.csmania.ru/';
    AutoSize:=True;
    Parent:=WizardForm;
    Transparent:=True;
    Font.Color:=$969696;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
  end;
  URLLabel:=TLabel.Create(WizardForm);
  with URLLabel do begin
    Top:=ScaleY(331)-dURL;
    Left:=ScaleX(25)-dURL;
    Caption:='http://forum.csmania.ru/';
    AutoSize:=True;
    Parent:=WizardForm;
    Cursor:=crHand;
    Transparent:=True;
    Font.Color:=clMaroon;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
    BringToFront;
    OnClick:=@URLLabelClick;
    OnMouseDown:=@URLLabelMouseDown;
    OnMouseUp:=@URLLabelMouseUp;
  end;
  /// url 2
    URLLabelShadow_2:=TLabel.Create(WizardForm);
  with URLLabelShadow_2 do begin
    Top:=ScaleY(331);
    Left:=ScaleX(200);
    Caption:='http://forum.oszone.net/';
    AutoSize:=True;
    Parent:=WizardForm;
    Transparent:=True;
    Font.Color:=$969696;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
  end;
  URLLabel_2:=TLabel.Create(WizardForm);
  with URLLabel_2 do begin
    Top:=ScaleY(331)-dURL;
    Left:=ScaleX(200)-dURL;
    Caption:='http://forum.oszone.net/';
    AutoSize:=True;
    Parent:=WizardForm;
    Cursor:=crHand;
    Transparent:=True;
    Font.Color:=clBlue;
    Font.Size:=9;
    Font.Style:=Font.Style+[fsBold];
    BringToFront;
    OnClick:=@URLLabelClick_2;
    OnMouseDown:=@URLLabelMouseDown_2;
    OnMouseUp:=@URLLabelMouseUp_2;
  end;
  
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:50, 12-03-2012 | #1062


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


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

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


Johny777, спасибо

Отправлено: 15:53, 12-03-2012 | #1063


Аватара для Johny777

Ветеран


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

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


Цитата R.i.m.s.k.y.:
мне неохота с кастомными чекбоксами заморачиваться, сделано все стандартно»
и не надо
насколько я знаю у компонетов есть номера как [0] или [1]
вот к ним если можешь привязать, что всё заработает
Цитата R.i.m.s.k.y.:
На каком шаге ты это делаешь?»
хз
процедуры и функции сверху записаны
конкретно действие выше у меня для на странице компонетов, когда один чекбокс относится только к одному радиобаттону, но думаю не проблема выполнять его для двух страниц.
единственное что у меня записано в InitializeWizard это main_CheckBox.Checked:= false;
могу дать скрипт, если нужно
сам посмотришь

Отправлено: 15:57, 12-03-2012 | #1064


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

Ветеран


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

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


Johny777, да я пробовал вызывать TaskChek который галки расставляет раньше страницы Tasks - ошибка, хотя с компонентами такое прокатывает
CurPageID=wpSelectTasks тоже не прокатывает

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


Отправлено: 16:00, 12-03-2012 | #1065


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


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

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


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

Отправлено: 16:04, 12-03-2012 | #1066


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

Ветеран


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

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


Johny777, еслибы было так просто, там еще надо и контролировать в системе наличие других компонент (того же хаали чтобы второй раз принудительно не поставить)

но я уже починил

Спасибо за внимание
Код: Выделить весь код
procedure TasksCheck();
var
  Item: Integer;
begin
...
  if ( check_for_haali ) then begin
    Item := WizardForm.TasksList.Items.IndexOf(ExpandConstant('{cm:Haali}')); 
    WizardForm.TasksList.Checked[item] := True; // надо было вот эту строчку повторить, ее не было
    if WizardForm.TasksList.ItemIndex = Item then WizardForm.TasksList.Checked[item] := True;
  end;
end; //if (noComponentClick = False) then begin
end;

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


Отправлено: 16:09, 12-03-2012 | #1067


Аватара для Johny777

Ветеран


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

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


R.i.m.s.k.y.,
вот смотри что накопал у себя в примерах
обрати внимание на самый конец
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application


[Components]
Name: text; Description: Язык субтитров; Types: full;
Name: text\rus; Description: Русский; Flags: exclusive;
Name: text\eng; Description: Английский; Flags: exclusive;
Name: voice; Description: Язык озвучки;
Name: voice\rus; Description: Русский; Flags: exclusive;
Name: voice\eng; Description: Английский; Flags: exclusive;

[ code]
var
OldEvent_ComponentsListClickCheck: TNotifyEvent;

procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('text') then
WizardForm.ComponentsList.ItemEnabled[3]:=False
else
WizardForm.ComponentsList.ItemEnabled[3]:=True;
OldEvent_ComponentsListClickCheck(Sender);
end;

procedure InitializeWizard();
begin
with WizardForm.ComponentsList do
begin
OldEvent_ComponentsListClickCheck := OnClickCheck;
OnClickCheck := @ComponentsListClickCheck;
ItemEnabled[3]:=False;
end;
end;

_____________________продолжение,,,,,,,,,,,,,,,,,,,,,,,,,

[Components]
Name: "GameDiablo2"; Description: Diablo 2; Flags: fixed; Types: full compact custom;

Name: GameLoD; Description: Lord of Destruction; Types: full;

Name: Version; Description: Версия; Flags: fixed; Types: full compact custom;
Name: Version\107; Description: 1.07; Flags: exclusive;
Name: Version\108; Description: 1.08; Flags: exclusive;
Name: Version\109; Description: 1.09; Flags: exclusive; Types: full;

[ code]
var
OldEvent_ComponentsListClickCheck: TNotifyEvent;

procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('GameLoD') then
WizardForm.ComponentsList.ItemEnabled[3]:=True
else
WizardForm.ComponentsList.ItemEnabled[3]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;

procedure InitializeWizard();
begin
with WizardForm.ComponentsList do
begin
OldEvent_ComponentsListClickCheck := OnClickCheck;
OnClickCheck := @ComponentsListClickCheck;
ItemEnabled[3]:=True;
end;
end;

,,,,,,,,,,,,,,,,,,,,,,,,,,.................................


procedure ComponentsListClickCheck(Sender: TObject);
begin
If IsComponentSelected('GameLoD') then begin
WizardForm.ComponentsList.ItemEnabled[3]:=True;
WizardForm.ComponentsList.ItemEnabled[4]:=True;
end else begin
WizardForm.ComponentsList.ItemEnabled[3]:=False;
WizardForm.ComponentsList.ItemEnabled[4]:=False;
OldEvent_ComponentsListClickCheck(Sender);
end;
end;

Отправлено: 16:11, 12-03-2012 | #1068


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

Ветеран


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

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


Johny777, ну у меня так и сделано, только номера не жоские а WizardForm.ComponentsList.Items.IndexOf('Diablo 2')

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


Отправлено: 16:36, 12-03-2012 | #1069


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


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

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


R.i.m.s.k.y., ты знаешь как этот код можно вписать в мой???
Код: Выделить весь код
[_code] 
 var 
 PageNameLabel, PageDescriptionLabel: TLabel; 
  
 procedure InitializeWizard(); 
 begin 
 WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX(0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height); 
  
 PageNameLabel:= TLabel.Create(WizardForm) 
 with WizardForm.PageNameLabel do 
 PageNameLabel.SetBounds(Left, Top, Width, Height); 
 PageNameLabel.Transparent:= True; 
 PageNameLabel.Font:= WizardForm.PageNameLabel.Font; 
 PageNameLabel.Font.Color:= clWhite;  //цвет надписи 
 PageNameLabel.Parent:= WizardForm.MainPanel; 
  
 PageDescriptionLabel:= TLabel.Create(WizardForm) 
 with WizardForm.PageDescriptionLabel do 
 PageDescriptionLabel.SetBounds(Left, Top, Width, Height); 
 PageDescriptionLabel.Transparent:= True; 
 PageDescriptionLabel.Font:= WizardForm.PageDescriptionLabel.Font; 
 PageDescriptionLabel.Font.Color:= clWhite;  //цвет надписи 
 PageDescriptionLabel.Parent:= WizardForm.MainPanel; 
  
 WizardForm.PageNameLabel.Hide; 
 WizardForm.PageDescriptionLabel.Hide; 
 end; 
  
 procedure CurPageChanged(CurPageID: Integer); 
 begin 
 PageNameLabel.Caption:= WizardForm.PageNameLabel.Caption; 
 PageDescriptionLabel.Caption:= WizardForm.PageDescriptionLabel.Caption; 
 end;

Отправлено: 17:30, 12-03-2012 | #1070



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход