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

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

 

Аватара для ROMKA-1977

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


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

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


Помогите пож. со следующей ситуацией:
На странице InstallingPage прописал кнопку минимизации инстала (сворачивание в нижний правый угол) и кнпку возврата в исходный размер.

Проблема: после распаковки архивов при установке компонентов выведенных на странице SelectTasksPage кнопки "Min" и "Max" не кликабельны как и кнопка "Отмена" но отображаются они как кликабельные. Как сделать чтобы кнопки "Min" и "Max" отображались некликабельными как и кнопка "Отмена" ?



Пример кода:
читать дальше »

[Setup]
AppName=Name
VersionInfoVersion=5.0
AppVerName=VerName
DefaultDirName={pf}\My program
ShowTasksTreeLines=true
OutputDir=.

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

[Tasks]
Name: Soft; Description: Установка дополнительного программного обеспечения; GroupDescription: Дополнительное программное обеспечение:; Flags: unchecked
Name: Soft/DirectX; Description: Microsoft DirectX; Flags: unchecked
Name: Soft/vcredist_x86; Description: Microsoft Visual С++ 2005 Redistributable; Flags: unchecked
Name: Soft/vcredist_x64; Description: Microsoft Visual С++ 2005 Redistributable x64; Flags: unchecked; Check: IsWin64

[Files]
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[Run]
Filename: {src}\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: Soft/DirectX; StatusMsg: Установка DirectX;
Filename: {src}\MVC++2005\vcredist_x86.exe; Tasks: Soft/vcredist_x86; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable;
Filename: {src}\MVC++2005\vcredist_x64.exe; Tasks: Soft/vcredist_x64; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable x64;

[code]
var
ResizeButton: TButton;
PageResized, Show: Boolean;

function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure MinimizeInstallPage();
begin
WizardForm.MainPanel.Hide;
WizardForm.Bevel1.Hide;
WizardForm.Width:= ScaleX(395);
WizardForm.Height:= ScaleY(142);
WizardForm.Left:= GetSystemMetrics(16)-ScaleX(420);
WizardForm.Top:= GetSystemMetrics(17)-ScaleX(150);
WizardForm.InnerNotebook.Left:= ScaleX(10);
WizardForm.InnerNotebook.Top:= ScaleY(10);
WizardForm.InnerNotebook.Width:= ScaleX(370);
WizardForm.StatusLabel.Left:= ScaleX(0);
WizardForm.StatusLabel.Top:= ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:= ScaleX(0);
WizardForm.FileNameLabel.Top:= ScaleY(20);
WizardForm.FileNameLabel.Width:= WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:= ScaleY(40);
WizardForm.ProgressGauge.Width:= WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:= ScaleX(220);
WizardForm.CancelButton.Top:= ScaleY(80);
WizardForm.CancelButton.BringToFront;
ResizeButton.Left:= ScaleX(60);
ResizeButton.Top:= ScaleY(80);
ResizeButton.Caption:= 'Max.';
PageResized:= True;
end;

procedure ResumeInstallPage();
begin
WizardForm.Width:= ScaleX(503);
WizardForm.Height:= ScaleY(388);
WizardForm.Position:= poScreenCenter;
if Show then begin
WizardForm.MainPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(58));
WizardForm.MainPanel.Show;
WizardForm.Bevel1.Show;
end;
WizardForm.InnerNotebook.SetBounds(ScaleX(40), ScaleY(72), ScaleX(417), ScaleY(237));
WizardForm.StatusLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(16));
WizardForm.FilenameLabel.SetBounds(ScaleX(0), ScaleY(16), ScaleX(417), ScaleY(16));
WizardForm.ProgressGauge.SetBounds(ScaleX(0), ScaleY(42), ScaleX(417), ScaleY(21));
WizardForm.CancelButton.SetBounds(ScaleX(412), ScaleY(327), ScaleX(75), ScaleY(23));
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.Caption:= 'Min.';
PageResized:= False;
end;

procedure ResizeButtonOnClick(Sender: TObject);
begin
If PageResized then
ResumeInstallPage
else
MinimizeInstallPage;
end;

procedure InitializeWizard();
begin
ResizeButton:= TButton.Create(WizardForm);
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.OnClick:= @ResizeButtonOnClick;
ResizeButton.Caption:= 'Min.';
ResizeButton.Hide;
ResizeButton.Parent:= WizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
ResizeButton.Hide;
case CurPageID of
wpInstalling:
begin
Show:= true;
ResizeButton.Show;
end;
wpFinished:
begin
Show:= false;
ResumeInstallPage;
end;
end;
end;

Последний раз редактировалось ROMKA-1977, 26-10-2014 в 22:50.


Отправлено: 22:42, 26-10-2014 | #1891



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

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


Ветеран


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

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


Цитата ROMKA-1977:
Как сделать чтобы кнопки "Min" и "Max" отображались некликабельными как и кнопка "Отмена" ? »
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssPostInstall: _моя_кнопка.Enabled := WizardForm.NextButton.Enabled;
    end;
end;

Отправлено: 22:49, 26-10-2014 | #1892


Аватара для Dodakaedr

Ветеран


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

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


ROMKA-1977, В свойствах кнопки поставить Enabled := False;
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
  case CurPageID of
wpInstalling:
begin
Min.кнопка.Enabled := False;
end;
end;
end;

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


Отправлено: 22:51, 26-10-2014 | #1893


Аватара для ROMKA-1977

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


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

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


Dodakaedr, saurn, оба варианта не подходят.

Отправлено: 23:40, 26-10-2014 | #1894


Ветеран


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

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


ROMKA-1977,
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Name
VersionInfoVersion=5.0
AppVerName=VerName
DefaultDirName={pf}\My program
ShowTasksTreeLines=true
OutputDir=.

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

[Tasks]
Name: Soft; Description: Установка дополнительного программного обеспечения; GroupDescription: Дополнительное программное обеспечение:; Flags: unchecked
Name: Soft/DirectX; Description: Microsoft DirectX; Flags: unchecked
Name: Soft/vcredist_x86; Description: Microsoft Visual С++ 2005 Redistributable; Flags: unchecked
Name: Soft/vcredist_x64; Description: Microsoft Visual С++ 2005 Redistributable x64; Flags: unchecked; Check: IsWin64

[Files]
Source: {win}\help\*; DestDir: {app}\Files; AfterInstall: BtnDisable(); Flags: external recursesubdirs createallsubdirs;

[Run]
Filename: {src}\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: Soft/DirectX; StatusMsg: Установка DirectX;
Filename: {src}\MVC++2005\vcredist_x86.exe; Tasks: Soft/vcredist_x86; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable;
Filename: {src}\MVC++2005\vcredist_x64.exe; Tasks: Soft/vcredist_x64; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable x64;

[code]
var
ResizeButton: TButton;
PageResized, Show: Boolean;

function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure MinimizeInstallPage();
begin
WizardForm.MainPanel.Hide;
WizardForm.Bevel1.Hide;
WizardForm.Width:= ScaleX(395);
WizardForm.Height:= ScaleY(142);
WizardForm.Left:= GetSystemMetrics(16)-ScaleX(420);
WizardForm.Top:= GetSystemMetrics(17)-ScaleX(150);
WizardForm.InnerNotebook.Left:= ScaleX(10);
WizardForm.InnerNotebook.Top:= ScaleY(10);
WizardForm.InnerNotebook.Width:= ScaleX(370);
WizardForm.StatusLabel.Left:= ScaleX(0);
WizardForm.StatusLabel.Top:= ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:= ScaleX(0);
WizardForm.FileNameLabel.Top:= ScaleY(20);
WizardForm.FileNameLabel.Width:= WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:= ScaleY(40);
WizardForm.ProgressGauge.Width:= WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:= ScaleX(220);
WizardForm.CancelButton.Top:= ScaleY(80);
WizardForm.CancelButton.BringToFront;
ResizeButton.Left:= ScaleX(60);
ResizeButton.Top:= ScaleY(80);
ResizeButton.Caption:= 'Max.';
PageResized:= True;
end;

procedure ResumeInstallPage();
begin
WizardForm.Width:= ScaleX(503);
WizardForm.Height:= ScaleY(388);
WizardForm.Position:= poScreenCenter;
if Show then begin
WizardForm.MainPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(58));
WizardForm.MainPanel.Show;
WizardForm.Bevel1.Show;
end;
WizardForm.InnerNotebook.SetBounds(ScaleX(40), ScaleY(72), ScaleX(417), ScaleY(237));
WizardForm.StatusLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(16));
WizardForm.FilenameLabel.SetBounds(ScaleX(0), ScaleY(16), ScaleX(417), ScaleY(16));
WizardForm.ProgressGauge.SetBounds(ScaleX(0), ScaleY(42), ScaleX(417), ScaleY(21));
WizardForm.CancelButton.SetBounds(ScaleX(412), ScaleY(327), ScaleX(75), ScaleY(23));
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.Caption:= 'Min.';
PageResized:= False;
end;

procedure ResizeButtonOnClick(Sender: TObject);
begin
If PageResized then
ResumeInstallPage
else
MinimizeInstallPage;
end;

procedure InitializeWizard();
begin
ResizeButton:= TButton.Create(WizardForm);
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.OnClick:= @ResizeButtonOnClick;
ResizeButton.Caption:= 'Min.';
ResizeButton.Hide;
ResizeButton.Parent:= WizardForm;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
ResizeButton.Hide;
case CurPageID of
wpInstalling:
begin
Show:= true;
ResizeButton.Show;
end;
wpFinished:
begin
Show:= false;
ResumeInstallPage;
end;
end;
end;

procedure BtnDisable();
begin
    ResizeButton.Enabled := False;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:10, 27-10-2014 | #1895


Аватара для ROMKA-1977

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


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

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


saurn, при обычной упаковке всё OK. Но у меня упаковка не через секцию [Files] а в архивы .arc.

Отправлено: 01:13, 27-10-2014 | #1896


Ветеран


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

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


Цитата ROMKA-1977:
Но у меня упаковка не через секцию [Files] а в архивы .arc. »
В скрипте, что вы дали, нет ни строчки про распаковку архивов. Я ведь не могу знать каким способом вы осуществляете установку. Отключайте кнопку после того, как отработает процедура\функция распаковки последнего архива.

Отправлено: 01:46, 27-10-2014 | #1897


Аватара для ROMKA-1977

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


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

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


Цитата saurn:
Отключайте кнопку после того, как отработает процедура\функция распаковки последнего архива. »
Если можно дайте пож. пример. Распаковка через ISDone v0.6.

Отправлено: 01:57, 27-10-2014 | #1898


Ветеран


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

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


ROMKA-1977, в стандартном примере к библиотеке распаковка архивов находится в блоке процедуры CurStepChanged, вызов функций ISDone осуществляется на шаге ssInstall. В окончании блока:
Код: Выделить весь код
if CurStep = ssInstall then begin
// здесь распаковка архивов и вызов прочих функций.
//в самом низу блока строчки
    HideControls;
    WizardForm.CancelButton.Visible:=true;
    WizardForm.CancelButton.Enabled:=false;
// здесь отключайте кнопку
   ResizeButton.Enabled := False;
  end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:07, 27-10-2014 | #1899


Аватара для ROMKA-1977

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


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

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


Подскажите что означает ошибка: Exception: External exception EEDFADE.

На странице InstallingPage прописал кнопку минимизации инстала (сворачивание в нижний правый угол) и кнпку возврата в исходный размер + код слайдшоу с применением isSlideShow.dll.

Проблема: isSlideShow работает нормально но после минимизации окна и далее возврата окна в исходное состояние вылетает ошибка: Exception: External exception EEDFADE с подсветкой строки: ShowImage(piclist.strings[CurrentPicture - 1], 1, 1000);

Пример кода:
читать дальше »

[Setup]
AppName=Name
VersionInfoVersion=5.0
AppVerName=VerName
DefaultDirName={pf}\My program
ShowTasksTreeLines=true
OutputDir=.

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

[Tasks]
Name: Soft; Description: Установка дополнительного программного обеспечения; GroupDescription: Дополнительное программное обеспечение:; Flags: unchecked
Name: Soft/DirectX; Description: Microsoft DirectX; Flags: unchecked
Name: Soft/vcredist_x86; Description: Microsoft Visual С++ 2005 Redistributable; Flags: unchecked
Name: Soft/vcredist_x64; Description: Microsoft Visual С++ 2005 Redistributable x64; Flags: unchecked; Check: IsWin64

[Files]
Source: {win}\help\*; DestDir: {app}\Files; AfterInstall: BtnDisable(); Flags: external recursesubdirs createallsubdirs;

Source: Image_1.png; DestDir: {tmp}; Flags: dontcopy
Source: Image_2.png; DestDir: {tmp}; Flags: dontcopy
Source: Image_3.png; DestDir: {tmp}; Flags: dontcopy

Source: isSlideShow.dll; DestDir: {tmp}; Flags: dontcopy

[Run]
Filename: {src}\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: Soft/DirectX; StatusMsg: Установка DirectX;
Filename: {src}\MVC++2005\vcredist_x86.exe; Tasks: Soft/vcredist_x86; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable;
Filename: {src}\MVC++2005\vcredist_x64.exe; Tasks: Soft/vcredist_x64; Parameters: /q; StatusMsg: Установка Microsoft Visual С++ 2005 Redistributable x64;

[code]
///////////////////////// Кнопки "Min" и "Max" /////////////////////////
var
ResizeButton: TButton;
PageResized, Show: Boolean;

function GetSystemMetrics(nIndex:Integer):integer;
external 'GetSystemMetrics@user32.dll stdcall delayload';

procedure MinimizeInstallPage();
begin
WizardForm.MainPanel.Hide;
WizardForm.Bevel1.Hide;
WizardForm.Width:= ScaleX(395);
WizardForm.Height:= ScaleY(142);
WizardForm.Left:= GetSystemMetrics(16)-ScaleX(420);
WizardForm.Top:= GetSystemMetrics(17)-ScaleX(150);
WizardForm.InnerNotebook.Left:= ScaleX(10);
WizardForm.InnerNotebook.Top:= ScaleY(10);
WizardForm.InnerNotebook.Width:= ScaleX(370);
WizardForm.StatusLabel.Left:= ScaleX(0);
WizardForm.StatusLabel.Top:= ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:= ScaleX(0);
WizardForm.FileNameLabel.Top:= ScaleY(20);
WizardForm.FileNameLabel.Width:= WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:= ScaleY(40);
WizardForm.ProgressGauge.Width:= WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:= ScaleX(220);
WizardForm.CancelButton.Top:= ScaleY(80);
WizardForm.CancelButton.BringToFront;
ResizeButton.Left:= ScaleX(60);
ResizeButton.Top:= ScaleY(80);
ResizeButton.Caption:= 'Max.';
PageResized:= True;
end;

procedure ResumeInstallPage();
begin
WizardForm.Width:= ScaleX(503);
WizardForm.Height:= ScaleY(388);
WizardForm.Position:= poScreenCenter;
if Show then begin
WizardForm.MainPanel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(497), ScaleY(58));
WizardForm.MainPanel.Show;
WizardForm.Bevel1.Show;
end;
WizardForm.InnerNotebook.SetBounds(ScaleX(40), ScaleY(72), ScaleX(417), ScaleY(237));
WizardForm.StatusLabel.SetBounds(ScaleX(0), ScaleY(0), ScaleX(417), ScaleY(16));
WizardForm.FilenameLabel.SetBounds(ScaleX(0), ScaleY(16), ScaleX(417), ScaleY(16));
WizardForm.ProgressGauge.SetBounds(ScaleX(0), ScaleY(42), ScaleX(417), ScaleY(21));
WizardForm.CancelButton.SetBounds(ScaleX(412), ScaleY(327), ScaleX(75), ScaleY(23));
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.Caption:= 'Min.';
PageResized:= False;
end;

procedure ResizeButtonOnClick(Sender: TObject);
begin
If PageResized then
ResumeInstallPage
else
MinimizeInstallPage;
end;

procedure InitializeWizard1();
begin
ResizeButton:= TButton.Create(WizardForm);
ResizeButton.SetBounds(ScaleX(20), ScaleY(327),ScaleX(75), ScaleY(23));
ResizeButton.OnClick:= @ResizeButtonOnClick;
ResizeButton.Caption:= 'Min.';
ResizeButton.Hide;
ResizeButton.Parent:= WizardForm;
end;

procedure CurPageChanged1(CurPageID: Integer);
begin
ResizeButton.Hide;
case CurPageID of
wpInstalling:
begin
Show:= true;
ResizeButton.Show;
end;
wpFinished:
begin
Show:= false;
ResumeInstallPage;
end;
end;
end;

procedure BtnDisable();
begin
ResizeButton.Enabled := False;
end;

///////////////////////// isSlideShow v1.03 /////////////////////////
type
TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);

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

function WrapTimerProc(Callback:TProc; NumParam:integer): longword;
external 'WrapCallback@files:isslideshow.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; SpeedTransition: integer);
external 'ShowImage@files:isslideshow.dll stdcall';

procedure InitializeWizard2();
begin
PicList:=tstringlist.Create;
ExtractTemporaryFile('Image_1.png');
ExtractTemporaryFile('Image_2.png');
ExtractTemporaryFile('Image_3.png');;
piclist.add(ExpandConstant('{tmp}') + '\Image_1.png');
piclist.add(ExpandConstant('{tmp}') + '\Image_2.png');
piclist.add(ExpandConstant('{tmp}') + '\Image_3.png');
end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
CurrentPicture:=CurrentPicture+1;
if CurrentPicture=piclist.count+1 then CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture - 1], 1, 1000);
end;

procedure CurPageChanged2(CurPageID: Integer);
begin
If CurPageID=wpInstalling then
begin
InitializeSlideShow(WizardForm.InstallingPage.Handle, 0, 131, ScaleX(417), ScaleY(101), true, 2);
CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture-1], 1, 1000);
TimerID:=SetTimer(0, 0, 3000, WrapTimerProc(@OnTimer, 4)); //задержка 3000 мс (3 секунды)
end;
if CurPageID=wpFinished then
begin
KillTimer(0, TimerID);
DeinitializeSlideShow;
end;
end;

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

//////////////
procedure InitializeWizard();
begin
InitializeWizard1();
InitializeWizard2();
end;

procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;


Сборка:
http://rghost.ru/58771778

Последний раз редактировалось ROMKA-1977, 29-10-2014 в 18:58.


Отправлено: 10:05, 29-10-2014 | #1900



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




 
Переход