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

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 900 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 798 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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

 

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


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

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


Imitri7, а какое изображение в том коде становиться фоновым, просто я не нашёл в директории source ни одной ссылки на изображение

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 18:58, 27-12-2010 | #291



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

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


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


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

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


actavir, это вроде ток пример, не дописанный код
зы на пред. страницы код выложил, его попробуй

я лично вот этим вариантом пользуюсь
из скрипта злого деда (на велком и финиш пейдж)

Код: Выделить весь код
[Setup]
AppName=Mirror's Edge
AppVerName=Mirror's Edge
DefaultDirName={pf}\EA Games\Mirror's Edge
WizardImageFile=WizardImg.bmp
WizardSmallImageFile=WizardSmallImg.bmp

[_code]
var
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
procedure InitializeWizard();
//WizardImageFile
begin
WizardForm.Caption:='Программа установки игры "Mirrors Edge"';
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage.Height := 313;
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
WizardForm.FileNameLabel.Visible:=False;
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.StatusLabel.Top:=ScaleY(80);
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(176);
WLabel1.Top := ScaleY(16);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];
WLabel1.Font.Color:= clBlack;

WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(76);
WLabel2.Left := ScaleX(176);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Font.Color:= clBlack;

WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.WizardBitmapImage2.Height := 313;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(176);
FLabel1.Top := ScaleY(16);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];
FLabel1.Font.Color:= clBlack;

FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(76);
FLabel2.Left := ScaleX(176);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Font.Color:= clBlack;


FLabel2.Caption := 'Программа установлена на Ваш компьютер.' #13#13
'Нажмите «Завершить», чтобы выйти из программы установки.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;

PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(400);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Font.Color := clBlack;
Transparent := True;
Parent := WizardForm.MainPanel;
end;

with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
end;

Последний раз редактировалось Imitri7, 27-12-2010 в 19:19.

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

Отправлено: 19:06, 27-12-2010 | #292


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


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

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


Imitri7, слушай я вот тот предыдуший скрипт взял с 29 страницы а как сделать что бы он на другие страницы пошёл?

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 19:26, 27-12-2010 | #293


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


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

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


actavir,
вроде так
Код: Выделить весь код
[Files]
Source: fon.bmp; DestDir: {tmp}; Flags: dontcopy
[_code]
var
WelcomeLabel1, WelcomeLabel2,FinishedLabel1,FinishedLabel2: TLabel;
BmpFile1,BmpFile2: TBitmapImage;

procedure InitializeWizard();
begin
ExtractTemporaryFile('fon.bmp');

BmpFile1:= TBitmapImage.Create(WizardForm);
BmpFile1.Bitmap.LoadFromFile(ExpandConstant('{tmp}\fon.bmp'));
BmpFile1.SetBounds(0, 0, 497, 320);
BmpFile1.Stretch:= true
BmpFile1.Parent:= WizardForm.WelcomePage;

with WizardForm do
begin
WelcomeLabel1.Hide;
WelcomeLabel2.hide;
end;

WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
WelcomeLabel1.Alignment:=taCenter;
Left:= ScaleX(110);
Top:= ScaleY(50);
Width:= ScaleX(301);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 14;
Font.Color:=ClGray
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel1.Caption;
end;

WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
WelcomeLabel2.Alignment:=taCenter;
Top:= ScaleY(130);
Left:= ScaleX(110);
Width:= ScaleX(280);
Height:= ScaleY(310);
AutoSize:= false;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 10;
Font.Color:=ClWhite
Transparent:= true;
Parent:= WizardForm.WelcomePage;
Caption:= WizardForm.WelcomeLabel2.Caption;
end;

BmpFile2:= TBitmapImage.Create(WizardForm);
BmpFile2.Bitmap.LoadFromFile(ExpandConstant('{tmp}\fon.bmp'));
BmpFile2.SetBounds(0, 0, 497, 320);
BmpFile2.Stretch:= true
BmpFile2.Parent:= WizardForm.FinishedPage;


with WizardForm do
begin
FinishedHeadingLabel.Hide;
FinishedLabel.hide;
end;

FinishedLabel1:= TLabel.Create(WizardForm);
with FinishedLabel1 do
begin
FinishedLabel1.Alignment:=taCenter;
Left:= ScaleX(110);
Top:= ScaleY(50);
Width:= ScaleX(301);
Height:= ScaleY(71);
AutoSize:= false;
Transparent:= true;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 14;
Font.Color:=ClGray
Parent:= WizardForm.FinishedPage;
Caption:= WizardForm.FinishedHeadingLabel.Caption;
end;

FinishedLabel2:=TLabel.Create(WizardForm);
with FinishedLabel2 do
begin
FinishedLabel2.Alignment:=taCenter;
Top:= ScaleY(130);
Left:= ScaleX(110);
Width:= ScaleX(280);
Height:= ScaleY(310);
AutoSize:= false;
WordWrap:= true;
Font.Name:='Tahoma'
Font.Size:= 10;
Font.Color:=ClWhite
Transparent:= true;
Parent:= WizardForm.FinishedPage;
Caption:= WizardForm.FinishedLabel.Caption;
end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:42, 27-12-2010 | #294


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


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

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


Этот код даёт я так понял только на первую и на последнюю страницы??
А как сделать на все?

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 20:33, 27-12-2010 | #295


Аватара для Vamp1re

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


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

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


Я зделал так чтоб у меня распаковывало RAR архивы в inno setup но там надо выбирать директорию рапаковки а мне етого ненадо так как в инсталяторе от инно ето есть! как мне сделать чтоб RAR архиватор не запрашивал директорию распаковки?

Отправлено: 20:54, 27-12-2010 | #296


Ветеран


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

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


Цитата Rostlv:
но в XP бегунка нет »
У меня XP SP3, всё прекрасно отображается...
Цитата Rostlv:
И привязать его к секции Run »
Пример

Код: Выделить весь код
; используем прогрессбар без отображения реального процента,
; удобно при установке доп. программ, когда их время установки заранее не известна

[Setup]
AppName=ProgressBarStyle
AppVerName=ProgressBarStyle v 1.0
DefaultDirName={pf}\ProgressBarStyle
OutputDir=.
Compression=lzma/ultra64
InternalCompressLevel=ultra64
SolidCompression=yes
VersionInfoCopyright=Serega

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

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion

[Run]
; при первом и последующем запуске доп. программ, используем - BeforeInstall: AnimatePbMsg('Ваше сообщение')
; при последнем запуске, добавляем - AfterInstall: AnimatePbFree - необходимо для освобождения ресурсов и разрушения прогрессбара
Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Первый запуск MyProg.exe'); Flags: skipifsilent
Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Тестовый запуск MyProg.exe №2'); Flags: skipifsilent
Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Финальный запуск MyProg.exe'); AfterInstall: AnimatePbFree; Flags: skipifsilent

[Code]
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall';

const
  PBM_SETMARQUEE = $040A;
  GWL_STYLE      = -16;
  PBS_MARQUEE    = $08;

var
  AnimatePb: TNewProgressBar;

procedure CreateAnimatePb;
begin
  AnimatePb := TNewProgressBar.Create(WizardForm);
  with AnimatePb do
    begin
      Parent := WizardForm.InstallingPage;
      SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top + WizardForm.ProgressGauge.Height + ScaleY(10),
                WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height);
      SetWindowLong (AnimatePb.Handle, GWL_STYLE, (GetWindowLong (AnimatePb.Handle, GWL_STYLE) or PBS_MARQUEE));
      SendMessage(AnimatePb.Handle, PBM_SETMARQUEE, 1, 20);
    end;
end;

procedure AnimatePbMsg(const msg: string);
begin
  if AnimatePb = nil then
    CreateAnimatePb;
  WizardForm.FilenameLabel.Caption := msg;
end;

procedure AnimatePbFree;
begin
  if AnimatePb <> nil then
    begin
      AnimatePb.Free;
      AnimatePb := nil;
    end;
end;


Цитата actavir:
А как сделать на все? »
по аналогии

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

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

Отправлено: 21:00, 27-12-2010 | #297


Аватара для Vamp1re

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


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

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


ХЕЛП МИ !!!!!!

Отправлено: 21:14, 27-12-2010 | #298


Ветеран


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

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


Vamp1re, Вы по русски объясните, что конкретно вам надо? При чём тут архиватор?
Если нужна распаковка самораспаковывающегося rar архива, то смотрите справку по командной строке rar и уже с этими параметрами, запускаете свой архив.

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


Отправлено: 21:28, 27-12-2010 | #299


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


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

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


Подскажите, у меня конфликтуют процедуры InitializeWizard, так получилось что их 2 штуки в коде, что делать?
Одна на извлечении фриарка а вторая на фоновом изображении.

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)


Отправлено: 21:28, 27-12-2010 | #300



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




 
Переход