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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

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

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • 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.3 [11.09.2009] - Скачать;


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

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


Отправлено: 22:06, 23-08-2009

 

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


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

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


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

Отправлено: 02:10, 27-01-2010 | #1061



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

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


Аватара для A1EXXX

Старожил


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

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


mash, никак.

Отправлено: 02:23, 27-01-2010 | #1062


Аватара для Sotonisto

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


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

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


Цитата mash:
При использовании скина при установке самое первое окно выбора языка обычное, а когда выбрал язык, начиная с приветствия все диалоги "заскинованы". Скажите, можно это как то поправить? »
Что то я себе это плохо представляю. Скрины в студию!

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


Отправлено: 03:11, 27-01-2010 | #1063


Аватара для svensoft

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


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

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


Sotonisto, посмотрел твою сборку, очень впечатляет, супер !!!... Вот еще бы педали мигали как в скине при наведении мыши , вообще цены бы ему небыло...

Отправлено: 03:39, 27-01-2010 | #1064


Аватара для Sotonisto

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


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

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


Цитата svensoft:
Ну как бы, вот исходник скрипта, но правда там черт ногу сломит »
1. Ты отключил страницу выбора папки для установки твоего приложения. Если ты это действительно хотел - пропиши путь по которому оно должно установиться.
2. Я когда создавал свой инсталл изменял прогресс бар, но тебе это (как я понял) не нужно. Так что удали 2 эти строки.
читать дальше »
Код: Выделить весь код
#define PB_ImageFile "progress.bmp"
[Files]
Source: {#PB_ImageFile}; DestDir: {tmp}; Flags: recursesubdirs ignoreversion

3. Вот тут ошибка:
читать дальше »
Код: Выделить весь код
[Files]
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\заливаем REMOTE.OFFCE.MANAGER.4.1\через 15 минут\Делаем дистрибутив\autorun.exe"; DestDir: "{app}"; Flags: ignoreversion
//Source: {#PB_ImageFile}; DestDir: {tmp}; Flags: recursesubdirs ignoreversion
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\image.bmp"; Flags: dontcopy
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\button.bmp"; DestDir: {tmp}; Flags: dontcopy

Все изображения, которые используются для оформления инсталла должны быть записаны в самом начале секции [Files], а файлы твоей программы должны быть в самом конце. Кароче вот так:
читать дальше »
Код: Выделить весь код
[Files]
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\image.bmp"; Flags: dontcopy nocompression
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\button.bmp"; DestDir: {tmp}; Flags: dontcopy nocompression
Source: "C:\Documents and Settings\Alexander\Рабочий стол\XXX\заливаем REMOTE.OFFCE.MANAGER.4.1\через 15 минут\Делаем дистрибутив\autorun.exe"; DestDir: "{app}"; Flags: ignoreversion


P.S: если найду еще что-то - напишу
P.P.S: лучше создай на жестком для всех файлов отдельную папку (например "setup"). Так будет гораздо проще, а то у тебя километровые пути к файлам

Цитата svensoft:
Вот еще бы педали мигали как в скине при наведении мыши , вообще цены бы ему небыло »
Ну можно просто удалить секцию с текстурой кнопок - кнопки будут от скина в том архиве что я вылаживал ранее - есть 2 скина (tiger и мой) у них черные кнопки и при наведении они изменяются

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


Последний раз редактировалось Sotonisto, 27-01-2010 в 04:14.

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

Отправлено: 03:41, 27-01-2010 | #1065


Аватара для svensoft

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


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

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


Sotonisto, а, та не, тот исходник что выше висит, то так, тренировочный полигон, это я у YURSHAT-а, спрашивал на предыдущей странице как вот эти два фрагмента кода соединить в один :
Код: Выделить весь код
 BmpFile:= TBitmapImage.Create(WizardForm);                               
 BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\image.bmp'));
 BmpFile.Top:= ScaleY(0);
 BmpFile.Left:= ScaleX(0);
 BmpFile.Width:= ScaleX(790);
 BmpFile.Height:= ScaleY(533);
 BmpFile.Stretch:= true;
 BmpFile.Parent:= WizardForm.ReadyPage;
 
 BmpFile:= TBitmapImage.Create(WizardForm);
 BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\image.bmp'));
 BmpFile.Top:= ScaleY(0);
 BmpFile.Left:= ScaleX(0);
 BmpFile.Width:= ScaleX(790);
 BmpFile.Height:= ScaleY(533);
 BmpFile.Stretch:= true;
 BmpFile.Parent:= WizardForm.InstallingPage;
но все равно приму к сведению что ты сказал ))..

Отправлено: 03:50, 27-01-2010 | #1066


Аватара для Sotonisto

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


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

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


Я там все правильно написал чем тебе фрагмента кода не нравится?
А как иначе селать изображения на каждой странице?

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


Последний раз редактировалось Sotonisto, 27-01-2010 в 05:45.


Отправлено: 04:12, 27-01-2010 | #1067


Аватара для YURSHAT

Старожил


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

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


Наложение текстур на кнопки инсталлятора. Кнопки имеют три состояния: нормальное, при наведении, при клике.

Текстура прилагается
Скрипт
Код: Выделить весь код
[Setup]
AppName=Test
AppVerName=Test
DefaultDirName={pf}\Test
OutputDir=userdocs:Test.

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

[Files]
;Изображение размером 240х23
Source: button.bmp; DestDir: {tmp}; Flags: dontcopy

[Code_]

const
ButtonWidth = 80;
ButtonHeight = 23;

bidBack = 0;
bidNext = 1;
bidCancel = 2;
bidDirBrowse = 3;
bidGroupBrowse = 4;

var
WizardLabel: TLabel;
ButtonPanel: array [0..4] of TPanel;
ButtonImage: array [0..4] of TBitmapImage;
ButtonLabel: array [0..4] of TLabel;
n: Integer;

procedure ButtonLabelClick(Sender: TObject);
var
Button: TButton;
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
case TLabel(Sender).Tag of
bidBack: Button:=WizardForm.BackButton
bidNext: Button:=WizardForm.NextButton
bidCancel: Button:=WizardForm.CancelButton
bidDirBrowse: Button:=WizardForm.DirBrowseButton
bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
else
Exit
end
Button.OnClick(Button)
end;

procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then
ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;

procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
end;

procedure ButtonLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Left <> -80 then
begin
for n:=0 to 4 do ButtonImage[n].Left:= 0
end;
if ButtonLabel[TLabel(Sender).Tag].Enabled then
begin
if ButtonLabel[TLabel(Sender).Tag].Left <> -80 then
ButtonImage[TLabel(Sender).Tag].Left:= -160
end;
end;

procedure WizardLabelMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Left <> -80 then
for n:=0 to 4 do ButtonImage[n].Left:= 0
end;

procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
Image: TBitmapImage;
Panel: TPanel;
Labl: TLabel;

begin
Panel:=TPanel.Create(WizardForm)
Panel.Left:=AButton.Left
Panel.Top:=AButton.Top
Panel.Width:=AButton.Width
Panel.Height:=AButton.Height
Panel.Tag:=AButtonIndex
Panel.Parent:=AButton.Parent
ButtonPanel[AButtonIndex]:=Panel

Image:=TBitmapImage.Create(WizardForm)
Image.Width:=240
Image.Height:=23
Image.Enabled:=False
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
Image.Parent:=Panel
ButtonImage[AButtonIndex]:=Image

with TLabel.Create(WizardForm) do begin
Tag:=AButtonIndex
Parent:=Panel
Width:=Panel.Width
Height:=Panel.Height
Transparent:=True
OnClick:=@ButtonLabelClick
OnDblClick:=@ButtonLabelClick
OnMouseMove:=@ButtonLabelMove
OnMouseDown:=@ButtonLabelMouseDown
OnMouseUp:=@ButtonLabelMouseUp
end

Labl:=TLabel.Create(WizardForm)
Labl.Left:=23
Labl.Top:=5
Labl.Autosize:=True
Labl.Alignment:=taCenter
Labl.Tag:=AButtonIndex
Labl.Transparent:=True
Labl.Font.Color:=clWhite
Labl.Caption:=AButton.Caption
Labl.OnClick:=@ButtonLabelClick
Labl.OnDblClick:=@ButtonLabelClick
Labl.OnMouseMove:=@ButtonLabelMove
Labl.OnMouseDown:=@ButtonLabelMouseDown
Labl.OnMouseUp:=@ButtonLabelMouseUp
Labl.Parent:=Panel
ButtonLabel[AButtonIndex]:=Labl
end;

procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
ButtonLabel[AButtonIndex].Caption:=AButton.Caption
ButtonPanel[AButtonIndex].Visible:=AButton.Visible
ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
ButtonLabel[AButtonIndex].Left:= ButtonPanel[AButtonIndex].Width div 2 - ButtonLabel[AButtonIndex].Width div 2;
ButtonLabel[AButtonIndex].Top:= ButtonPanel[AButtonIndex].Height div 2 - ButtonLabel[AButtonIndex].Height div 2;
end;

procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=True
end;

procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=False
end;

procedure InitializeWizard();
begin
WizardLabel:= TLabel.Create(WizardForm)
WizardLabel.Left:= ScaleX(0)
WizardLabel.Top:= ScaleY(0)
WizardLabel.Width:= ScaleX(497);
WizardLabel.Height:= ScaleY(360);
WizardLabel.Transparent:= True;
WizardLabel.AutoSize:=false;
WizardLabel.Caption:='';
WizardLabel.OnMouseMove:=@WizardLabelMove
WizardLabel.Parent:= WizardForm;

WizardForm.BackButton.Width:=ButtonWidth
WizardForm.BackButton.Height:=ButtonHeight

WizardForm.NextButton.Width:=ButtonWidth
WizardForm.NextButton.Height:=ButtonHeight

WizardForm.CancelButton.Width:=ButtonWidth
WizardForm.CancelButton.Height:=ButtonHeight

WizardForm.DirBrowseButton.Left:=337
WizardForm.DirBrowseButton.Width:=ButtonWidth
WizardForm.DirBrowseButton.Height:=ButtonHeight

WizardForm.GroupBrowseButton.Left:=337
WizardForm.GroupBrowseButton.Width:=ButtonWidth
WizardForm.GroupBrowseButton.Height:=ButtonHeight

WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick

WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick

ExtractTemporaryFile('button.bmp')
LoadButtonImage(WizardForm.BackButton,bidBack)
LoadButtonImage(WizardForm.NextButton,bidNext)
LoadButtonImage(WizardForm.CancelButton,bidCancel)
LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;

procedure CurPageChanged(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack)
UpdateButton(WizardForm.NextButton,bidNext)
UpdateButton(WizardForm.CancelButton,bidCancel)
UpdateButton(WizardForm.DirBrowseButton,bidDirBrowse)
UpdateButton(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;


ЗЫ. Serega, можно заменить пример в шапке.

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Последний раз редактировалось YURSHAT, 15-12-2011 в 15:42.

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

Отправлено: 04:17, 27-01-2010 | #1068


Аватара для Sotonisto

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


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

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


Цитата YURSHAT:
Хотите мигающие педали - ловите! »
Мне оно не оч то и нуно - если че - можно удалить наложение текстуры и будут использоваться кнопки скина.
Но вот я попробовал и вот что у меня :-\

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


Отправлено: 05:29, 27-01-2010 | #1069


Аватара для YURSHAT

Старожил


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

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


Цитата Sotonisto:
Но вот я попробовал и вот что у меня :-\ »
Ты допустил ошибку, в
Код: Выделить весь код
var
WizardLabel: TLabel;
ButtonPanel: array [0..4] of TPanel;
ButtonImage: array [0..4] of TBitmapImage;
ButtonLabel: array [0..4] of TLabel;
n: Integer;
Цитата Sotonisto:
Мне оно не оч то и нуно »
Ну я никому и не навязываю. Тебе не нужно - пригодится другим...

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 06:05, 27-01-2010 | #1070



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход