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

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

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

Аватара для 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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

SHVtYW4=


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

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


Цитата TAY50N:
все описания будут отображаться в строго определенной области. »
В ShowPicHint
Замени
Код: Выделить весь код
SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
на
Код: Выделить весь код
SetBounds(ScaleX(700), ScaleY(410), InfoPic.Width, InfoPic.Height);

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.

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

Отправлено: 20:47, 25-01-2014 | #1941



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

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


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


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

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


Ivan_009, http://rghost.ru/51921076

Отправлено: 20:52, 25-01-2014 | #1942


Аватара для Dinvin4ester

Старожил


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

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


Ivan_009,
http://www.fayloobmennik.net/3519701

Отправлено: 20:59, 25-01-2014 | #1943


Аватара для Ivan_009

Ветеран


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

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


Farser21, Не знаю что у тебя но у меня все тип топ. Навсякий случай скачай и замени модуль BASS...

Dinvin4ester,Скачай тоже примеры использования внутри.

Ссылка: http://rghost.ru/51921479
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:12, 25-01-2014 | #1944


Старожил


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

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


Dinvin4ester
http://rghost.ru/51921808
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:23, 25-01-2014 | #1945


Аватара для Dinvin4ester

Старожил


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

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


vint56, Ivan_009,
Спс.

Отправлено: 21:37, 25-01-2014 | #1946


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


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

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


Ivan_009, спасибо помогло!

Возникли еще вопросы, надеюсь поможете.
1)Как сделать так, чтобы когда устанавливаешь компоненты, можно было поставить флажок на удаление старых компонентов в определенной папке.
2)Как сделать авто определение установки, т.е. установщик сам выбирает нужную папку куда устанавливать.
Заранее спасибо за ответы!

Последний раз редактировалось Farser21, 25-01-2014 в 22:43.


Отправлено: 22:26, 25-01-2014 | #1947


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


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

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


Цитата Nordek:
Код:
SetBounds(ScaleX(700), ScaleY(410), InfoPic.Width, InfoPic.Height); »
я имел ввиду в строго определенной области установщика, а не экрана - сорри
т.е. когда наводится указатель на какой либо мод - картинка мода, отображается вместо WizardImageFile
Как это осуществить? Заранее Спасибо!

Последний раз редактировалось TAY50N, 26-01-2014 в 00:25.


Отправлено: 00:15, 26-01-2014 | #1948


Ветеран


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

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


Цитата Farser21:
1)Как сделать так, чтобы когда устанавливаешь компоненты, можно было поставить флажок на удаление старых компонентов в определенной папке. »
Пост #271
Цитата Farser21:
2)Как сделать авто определение установки, т.е. установщик сам выбирает нужную папку куда устанавливать. »
Уточните по какому критерию должен выполнятся выбор: на основе записи в реестре или непосредственный поиск папки по указанному имени.
------------------------------------------------------------------
Читайте форум. Эти вопросы давно уже заезжены-переезжены.
------------------------------------------------------------------

Цитата TAY50N:
я имел ввиду в строго определенной области установщика, а не экрана - сорри »
читать дальше »
Код: Выделить весь код
[code]
const
    UNDEF_INDEX = -777;
    
    
function GetCursorPos(var lpPoint: TPoint): BOOL; external 'GetCursorPos@user32.dll stdcall';


var
    InfoPic: TBitmapImage;
    LastIndex: Integer;
    TempPath: String;
    
    
procedure ShowPicHint(const PicFilePath: String);
var
    pt: TPoint;
begin
    if not GetCursorPos(pt) then Exit;
    InfoPic.Bitmap.LoadFromFile(PicFilePath);
    InfoPic.SetBounds(ScaleX(245), ScaleY(42), ScaleX(166), ScaleY(165));
    InfoPic.Show;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
    UndefPic: String;
begin
    if Index = -1 then Exit;
    if Index = LastIndex then Exit;
    try
        case TNewCheckListBox(Sender).ItemCaption[Index] of
            'Half-Life 2': UndefPic := 'Wasteland_Scanner_con.bmp';
            'Half-Life 2 Episode One': UndefPic := 'Strider_early2.bmp';
            'Half-Life 2 Episode Two': UndefPic := 'Cremator_poster.bmp';
            'Portal': UndefPic := 'Portal.bmp';
        else
            begin
                LastIndex := UNDEF_INDEX;
                InfoPic.Hide;
                Exit;
            end;
        end;
        if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
        ShowPicHint(TempPath + UndefPic);
    finally
        LastIndex := Index;
    end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
    InfoPic.Hide;
    LastIndex := -1;
end;


procedure InitInfo();
begin
    WizardForm.TypesCombo.Hide;
    WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(37), ScaleX(225), ScaleY(176));
    WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
    WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
    TempPath := AddBackslash(ExpandConstant('{tmp}'));
    LastIndex := UNDEF_INDEX;
    
    with TBevel.Create(WizardForm) do
    begin
      Parent := WizardForm.SelectComponentsPage;
      SetBounds(ScaleX(240), ScaleY(37), ScaleX(177), ScaleY(176));
      Shape := bsFrame;
    end;
    
    InfoPic := TBitmapImage.Create(WizardForm)
    with InfoPic do
    begin
        Parent := WizardForm.SelectComponentsPage;
        AutoSize := True;
    end;
end;


procedure InitializeWizard();
begin
    InitInfo();
end;

Последний раз редактировалось saurn, 26-01-2014 в 03:33.

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

Отправлено: 02:32, 26-01-2014 | #1949


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


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

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


Цитата saurn:
читать дальше » »
Спасибо, Получилось!


И еще одно - как сделать чтобы было 0,0

скрипт:
читать дальше »
[Components]
Name: a; Description: Удаляем видео заставку;
Name: b; Description: "Часы в Ангаре";
Name: c; Description: "Выберите Прицел";
Name: c\1; Description: от zayaz; Flags: exclusive;
Name: c\2; Description: от ZCH_0933; Flags: exclusive;
Name: c\3; Description: от dab97; Flags: exclusive;
Name: c\4; Description: Бирюза; Flags: exclusive;
Name: c\5; Description: Анимированый; Flags: exclusive;
;Name: d; Description: "УГН";
;Name: e; Description: "ZoomMod + ZoomX";
;Name: q; Description: "Стандартные Звуки (папка Audio)";
;Name: f; Description: "Зоны пробития";
;Name: g; Description: "Белые трупы танков";
;Name: h; Description: "Уведомление союзников о засвете";
;Name: i; Description: "Прозрачный чат";
;Name: j; Description: "Дамаг Индикатор";
;Name: k; Description: Выберите Ангар;
;Name: k\1; Description: "«8 ноября»"; Flags: exclusive;
;Name: k\2; Description: "«Мастерская WG»"; Flags: exclusive;
;Name: l; Description: "Иконки";
;Name: m; Description: "Информативная панель";
;Name: o; Description: "Меню рамашка от TRJ-VoRoN";
;Name: p; Description: "Понель повреждений";
;Name: r; Description: "Статистика за сессию";
;Name: s; Description: "Список грядущих боёв на ГК";
;Name: t; Description: "Танки в два ряда";
;Name: y; Description: "XVM (Олень)";
;Name: u; Description: "Фокус";
;Name: w; Description: "Отображение оверлея (TS_Mumble_RaidCall)";
;Name: x; Description: "Максимальное увеличение дальности видимости";
;Name: z; Description: "Звуковой мод Громовые орудия, версия 1.6";
;Name: n; Description: "Реалистичная озвучка экипажа";
;Name: b1; Description: "Убираем облака";

[Files]
;////////////////////////////////////////Описание\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Source: 1.bmp; Flags: dontcopy nocompression
Source: 2.bmp; Flags: dontcopy nocompression
Source: 3.bmp; Flags: dontcopy nocompression
Source: 4.bmp; Flags: dontcopy nocompression
Source: 5.bmp; Flags: dontcopy nocompression
Source: 6.bmp; Flags: dontcopy nocompression
Source: 7.bmp; Flags: dontcopy nocompression

;/////////////////////////////////////// MODS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Source: "C:\Users\TaucoH\Desktop\334\InstallFiles\isskin.dll"; DestDir: "{app}"; Flags: dontcopy nocompression; Attribs: hidden system;
Source: "C:\Users\TaucoH\Desktop\334\InstallFiles\Tiger.cjstyles"; DestDir: "{app}"; Flags: dontcopy nocompression; Attribs: hidden system;
Source: "C:\Users\TaucoH\Desktop\334\InstallFiles\WizardImage.bmp"; DestDir: "{app}"; Flags: dontcopy nocompression; Attribs: hidden system;
Source: "C:\Users\TaucoH\Desktop\334\InstallFiles\WizardSmallImage.bmp"; DestDir: "{app}"; Flags: dontcopy nocompression; Attribs: hidden system;
Source: "C:\Games\World_of_Tanks\MODS\01. Удаляем видео заставку (INTRO)\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: a;
Source: "C:\Games\World_of_Tanks\MODS\02. Часы в Ангаре\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: b;
Source: "C:\Games\World_of_Tanks\MODS\03.1 Прицел zayaz\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: c\1;
Source: "C:\Games\World_of_Tanks\MODS\03.2 Прицел ZCH_0933\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: c\2;
Source: "C:\Games\World_of_Tanks\MODS\03.3 Прицел от dab97\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: c\3;
Source: "C:\Games\World_of_Tanks\MODS\03.4 Прицел Бирюза\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: c\4;
Source: "C:\Games\World_of_Tanks\MODS\03.5 Прицел анимированый\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: c\5;
;Source: "C:\Games\World_of_Tanks\MODS\04. УГН\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: d;
;Source: "C:\Games\World_of_Tanks\MODS\05. ZoomMod + ZoomX\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: e;
;Source: "C:\Games\World_of_Tanks\MODS\06. Звуки Стандартные (папка Audio)\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: q;
;Source: "C:\Games\World_of_Tanks\MODS\07. Зоны пробития\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: f;
;Source: "C:\Games\World_of_Tanks\MODS\08. Белые трупы танков\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: g;
;Source: "C:\Games\World_of_Tanks\MODS\09. Уведомление союзников о засвете\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: h;
;Source: "C:\Games\World_of_Tanks\MODS\10. Прозрачный чат\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: i;
;Source: "C:\Games\World_of_Tanks\MODS\11. Дамаг Индикатор\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: j;
;Source: "C:\Games\World_of_Tanks\MODS\12.1 Ангар «8 ноября»\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: k\1;
;Source: "C:\Games\World_of_Tanks\MODS\12.2 Ангар «Мастерская WG»\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: k\2;
;Source: "C:\Games\World_of_Tanks\MODS\13. Иконки\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: l;
;Source: "C:\Games\World_of_Tanks\MODS\14. Информативная панель\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: m;
;Source: "C:\Games\World_of_Tanks\MODS\16. Меню рамашка от TRJ-VoRoN\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: o;
;Source: "C:\Games\World_of_Tanks\MODS\17. Понель повреждений\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: p;
;Source: "C:\Games\World_of_Tanks\MODS\18. Статистика за сессию\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: r;
;Source: "C:\Games\World_of_Tanks\MODS\19. Список грядущих боёв на ГК\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: s;
;Source: "C:\Games\World_of_Tanks\MODS\20. Танки в два ряда\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: t;
;Source: "C:\Games\World_of_Tanks\MODS\21. XVM (Олень)\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: y;
;Source: "C:\Games\World_of_Tanks\MODS\22. Фокус\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: u;
;Source: "C:\Games\World_of_Tanks\MODS\23. Отображение оверлея (TS_Mumble_RaidCall)\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: w;
;Source: "C:\Games\World_of_Tanks\MODS\24. Максимальное увеличение дальности видимости\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: x;
;Source: "C:\Games\World_of_Tanks\MODS\25. Звуковой мод Громовые орудия, версия 1.6\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: z;
;Source: "C:\Games\World_of_Tanks\MODS\26. Реалистичная озвучка экипажа\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: n;
;Source: "C:\Games\World_of_Tanks\MODS\27. Убираем облака\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs; Components: b1;

[Registry]
Root: HKLM; Subkey: "Software\TAY50N_mods\Version"; ValueType: string; ValueName: "Version"; ValueData: "8.0"; Flags: uninsdeletekey

[code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
UNDEF_INDEX = -777;
ALPHA_BLEND_LEVEL = 255; // max=Byte=255

WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);


var
InfoPic: TBitmapImage;
LastIndex: Integer;
TempPath: String;
PicForm: TForm;


type
COLORREF = DWORD;


function GetCursorPos(var lpPoint: TPoint): BOOL; external 'GetCursorPos@user32.dll stdcall';
function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function SetFocus(hWnd: HWND): HWND; external 'SetFocus@user32.dll stdcall';

//////Картинка описания//////////
procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
InfoPic.SetBounds(ScaleX(251), ScaleY(70), ScaleX(225), ScaleY(229));
InfoPic.Show;
end;

///////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
case TNewCheckListBox(Sender).ItemCaption[Index] of
'Удаляем видео заставку': UndefPic := '1.bmp';
'Часы в Ангаре': UndefPic := '2.bmp';
'от zayaz': UndefPic := '3.bmp';
'от ZCH_0933': UndefPic := '4.bmp';
else
begin
LastIndex := UNDEF_INDEX;
InfoPic.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
InfoPic.Hide;
LastIndex := -1;
end;


procedure InitInfo();
begin
WizardForm.TypesCombo.Hide;
WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(63), ScaleX(240), ScaleY(240));
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;

with TBevel.Create(WizardForm) do
begin
Parent := WizardForm.SelectComponentsPage;
SetBounds(ScaleX(245), ScaleY(63), ScaleX(235), ScaleY(240));
Shape := bsFrame;
end;

InfoPic := TBitmapImage.Create(WizardForm)
with InfoPic do
begin
Parent := WizardForm.SelectComponentsPage;
AutoSize := True;
end;
end;


var
SystemPage: TWizardPage;
ModNameLabel: TNewStaticText;
MouseLabel, SiteLabel: TLabel;

GamePathPanel, GameVersPanel, GameModPanel: TPanel;
FindGamePath, FindGameVers, FindGameMod, ReqSatisfy: TNewStaticText;
GamePathMemo, GameVersMemo, GameModMemo, GamePathFindMemo, GameVersFindMemo, GameModFindMemo: TPanel;
RenameCheckBox: TNewCheckBox;

//процедуры, для использования скина (Tiger.cjstyles)
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

//процедуры, которые выполняются при наведении на ссылку (левый нижний угол)
procedure SiteLabelOnClick(Sender: TObject); var ErrorCode: Integer;
begin
ShellExec('open', 'http:\\defir.uniogame.com', '', '', 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 := WizardForm.Font.Color;
end;

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

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

procedure RedesignWizardForm;
begin
with WizardForm do
begin
Color := clBlack;
WelcomePage.Color := clBlack;
FinishedPage.Color := clBlack;
Font.Color := clWhite;
Font.Style := [fsBold];
Font.Size := 9;
ClientWidth := ScaleX(690);
ClientHeight := ScaleY(459);
Caption := ExpandConstant('{#SetupSetting("AppName")}');
Center;
end;

with WizardForm.OuterNotebook do
begin
SetBounds(ScaleX(180), ScaleY(60), ScaleX(680), ScaleY(350));
end;

with WizardForm.InnerNotebook do
begin
SetBounds(WizardForm.InnerNotebook.Left - ScaleX(40), ScaleY(10), ScaleX(560), ScaleY(340));
end;

with WizardForm.InnerPage do
begin
Color := clBlack;
end;

with WizardForm.Bevel do
begin
SetBounds(ScaleX(0), ScaleY(410), ScaleX(690), ScaleY(2));
end;

with WizardForm.Bevel1 do
begin
Parent := WizardForm;
SetBounds(ScaleX(0), ScaleY(58), ScaleX(690), ScaleY(2));
end;

with WizardForm.MainPanel do
begin
Parent := WizardForm;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(690), ScaleY(58));
end;

with WizardForm.WizardSmallBitmapImage do
begin
Left := ScaleX(633);
end;

with WizardForm.CancelButton do
begin
Left := ScaleX(590);
Top := ScaleY(425);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
end;

with WizardForm.NextButton do
begin
Left := ScaleX(500);
Top := ScaleY(425);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
end;

with WizardForm.BackButton do
begin
Left := ScaleX(410);
Top := ScaleY(425);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
end;

with WizardForm.ReadyMemo do
begin
SetBounds(ScaleX(0), ScaleY(30), ScaleX(480), ScaleY(280));
end;

ModNameLabel := TNewStaticText.Create(WizardForm);
with ModNameLabel do
begin
Parent := WizardForm.MainPanel;
Font.Size := 22;
Font.Name := 'Courier New';
Font.Style := [fsBold];
Font.Color := clWindowText;
SetBounds(ScaleX(20), ScaleY(15), ScaleX(200), ScaleY(50));
Caption := ExpandConstant('{#SetupSetting("AppName")}');
end;

MouseLabel := TLabel.Create(WizardForm);
with MouseLabel do
begin
Parent := WizardForm;
Width := WizardForm.Width;
Height := WizardForm.Height;
Autosize := False;
Transparent := True;
OnMouseMove := @SiteLabelMouseMove2;
end;

SiteLabel := TLabel.Create(WizardForm);
with SiteLabel do
begin
Caption := ExpandConstant('{#SetupSetting("AppPublisherURL")}');
Parent := WizardForm;
Left := ScaleX(15);
Top := ScaleY(425);
Font.Name := 'Courier New';
Cursor := crHand;
OnClick := @SiteLabelOnClick;
OnMouseDown := @SiteLabelMouseDown;
OnMouseUp := @SiteLabelMouseUp;
OnMouseMove := @SiteLabelMouseMove;
end;
end;

//************************************************ [Начало - Компоненты страниц] ***************************************************//

////////////////////// WelcomePage //////////////////////

procedure CreatePageComponents;
begin

with WizardForm.WizardBitmapImage do
begin
Parent := WizardForm;
SetBounds(ScaleX(0), ScaleY(60), ScaleX(407), ScaleY(350));
end;

with TLabel.Create(WizardForm) do
begin
Caption := WizardForm.WelcomeLabel1.Caption;
Parent := WizardForm.WelcomePage;
Alignment := taCenter;
AutoSize := False;
Wordwrap := True;
Font.Name := 'Courier New';
Font.Size := 14;
Font.Style := [fsBold];
Transparent := True;
SetBounds(ScaleX(30), ScaleY(45), ScaleX(407), ScaleY(45));
end;

with WizardForm.WelcomeLabel2 do
begin
Font.Name := 'Courier New';
SetBounds(ScaleX(30), ScaleY(140), ScaleX(407), ScaleY(239));
end;

////////////////////// WelcomePage //////////////////////

with WizardForm.PageNameLabel do
begin
Height := ScaleY(20);
Font.Name := 'Courier New';
Font.Size := 12;
Font.Color := WizardForm.Font.Color;
end;

with WizardForm.PageDescriptionLabel do
begin
Top := WizardForm.PageDescriptionLabel.Top + ScaleY(8);
Height := ScaleY(15);
Width := ScaleX(550);
Font.Name := 'Courier New';
end;

////////////////////// SelectDirPage //////////////////////

WizardForm.SelectDirLabel.Font.Name := 'Courier New';

with WizardForm.SelectDirBrowseLabel do
begin
Height := ScaleY(30);
Font.Name := 'Courier New';
end;

with WizardForm.DirEdit do
begin
Top := ScaleY(50);
Font.Size := 10;
Font.Name := 'Courier New';
Parent := WizardForm.SelectComponentsPage;
end;

with WizardForm.DirBrowseButton do
begin
Left := ScaleX(405);
Top := ScaleY(100);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
Parent := WizardForm.SelectComponentsPage;
end;

with WizardForm.DiskSpaceLabel do
begin
Top := ScaleY(245);
Font.Name := 'Courier New';
end;


////////////////////// SelectDirPage //////////////////////

////////////////////// SelectComponentsPage //////////////////////

with WizardForm.SelectComponentsLabel do
begin
Height := ScaleY(30);
Font.Name := 'Courier New';
end;

with WizardForm.DirEdit do
begin
SetBounds(ScaleX(0), ScaleY(35), ScaleX(400), ScaleY(50));
Font.Size := 10;
Font.Name := 'Courier New';
Parent := WizardForm.SelectComponentsPage;
end;

with WizardForm.DirBrowseButton do
begin
Top := ScaleY(36);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
Parent := WizardForm.SelectComponentsPage;
end;

with WizardForm.TypesCombo do
begin
Top := ScaleY(45);
Font.Name := 'Courier New';
end;

with WizardForm.ComponentsList do
begin
Top := ScaleY(80);
Height := ScaleY(155);
Font.Name := 'Tahoma';
Font.Size := 9;
Font.Style := [];
end;

with WizardForm.ComponentsDiskSpaceLabel do
begin
Top := ScaleY(315);
Font.Name := 'Courier New';
end;

////////////////////// SelectComponentsPage //////////////////////

////////////////////// SelectProgramGroupPage //////////////////////

with WizardForm.SelectStartMenuFolderLabel do
begin
Font.Name := 'Courier New';
end;

with WizardForm.SelectStartMenuFolderBrowseLabel do
begin
Height := ScaleY(30);
Font.Name := 'Courier New';
end;

with WizardForm.GroupEdit do
begin
Top := ScaleY(100);
Font.Name := 'Courier New';
Font.Size := 8;
end;

with WizardForm.GroupBrowseButton do
begin
Top := ScaleY(99);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
end;

with WizardForm.NoIconsCheck do
begin
Top := ScaleY(245);
Font.Name := 'Courier New';
Width := ScaleX(250);
end;

////////////////////// SelectProgramGroupPage //////////////////////

////////////////////// ReadyPage //////////////////////

WizardForm.ReadyLabel.Font.Name := 'Courier New';
WizardForm.ReadyMemo.Font.Name := 'Courier New';

////////////////////// ReadyPage //////////////////////

////////////////////// InstallingPage //////////////////////

WizardForm.StatusLabel.Font.Name := 'Courier New';
WizardForm.ProgressGauge.SetBounds(ScaleX(0), ScaleY(60), ScaleX(417), ScaleY(30));

with WizardForm.FilenameLabel do
begin
Top := ScaleY(20);
Font.Name := 'Courier New';
Font.Style := [];
end;

////////////////////// InstallingPage //////////////////////

////////////////////// FinishedPage //////////////////////

with WizardForm.WizardBitmapImage2 do
begin
Parent := WizardForm;
SetBounds(ScaleX(0), ScaleY(60), ScaleX(223), ScaleY(350));
end;

with TLabel.Create(WizardForm) do
begin
Caption := WizardForm.FinishedHeadingLabel.Caption;
Parent := WizardForm.FinishedPage;
Alignment := taCenter;
AutoSize := False;
Wordwrap := True;
Font.Name := 'Courier New';
Font.Size := 14;
Font.Style := [fsBold];
Transparent := True;
SetBounds(ScaleX(30), ScaleY(45), ScaleX(407), ScaleY(45));
end;

with WizardForm.FinishedLabel do
begin
Font.Name := 'Courier New';
SetBounds(ScaleX(30), ScaleY(130), ScaleX(407), ScaleY(239));
end;
end;

////////////////////// FinishedPage //////////////////////

////////////////////// UninstallingPage //////////////////////

procedure RedesignUninstallProgressForm;
var
UninstallBitmapImage: TBitmapImage;
begin
with UninstallProgressForm do
begin
Color := clBlack;
Font.Color := clWhite;
Font.Style := [fsBold];
Font.Name := 'Courier New';
Font.Size := 9;
ClientWidth := ScaleX(690);
ClientHeight := ScaleY(459);
Caption := ExpandConstant('{#SetupSetting("AppName")}');
Center;

OuterNotebook.SetBounds(ScaleX(223), ScaleY(60), ScaleX(467), ScaleY(351));
InnerNotebook.SetBounds(UninstallProgressForm.InnerNotebook.Left - ScaleX(25), ScaleY(50), ScaleX(460), ScaleY(260));
InnerPage.Color := clBlack;
Bevel.SetBounds(ScaleX(0), ScaleY(410), ScaleX(690), ScaleY(2));
StatusLabel.Top := ScaleY(0);
ProgressBar.SetBounds(UninstallProgressForm.StatusLabel.Left, ScaleY(50), ScaleX(417), ScaleY(30));
end;

with UninstallProgressForm.PageNameLabel do
begin
Height := ScaleY(20);
Font.Name := UninstallProgressForm.Font.Name;
Font.Size := 12;
Font.Color := UninstallProgressForm.Font.Color;
end;

with UninstallProgressForm.PageDescriptionLabel do
begin
Top := UninstallProgressForm.PageDescriptionLabel.Top + ScaleY(8);
Height := ScaleY(15);
Width := ScaleX(500);
end;

UninstallBitmapImage := TBitmapImage.Create(UninstallProgressForm);
with UninstallBitmapImage do
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardImage.bmp'));
Parent := UninstallProgressForm;
SetBounds(ScaleX(0), ScaleY(60), ScaleX(223), ScaleY(350));
end;

with UninstallProgressForm.WizardSmallBitmapImage do
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardSmallImage.bmp'));
Left := ScaleX(633);
end;

with UninstallProgressForm.Bevel1 do
begin
Parent := UninstallProgressForm;
SetBounds(ScaleX(0), ScaleY(58), ScaleX(690), ScaleY(2));
end;

with UninstallProgressForm.MainPanel do
begin
Parent := UninstallProgressForm;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(690), ScaleY(58));
end;

with UninstallProgressForm.CancelButton do
begin
Left := ScaleX(590);
Top := ScaleY(425);
Font.Name := 'Tahoma';
Font.Size := 8;
Font.Style := [];
end;
end;

////////////////////// UninstallingPage //////////////////////

//************************************************ [Конец - Компоненты страниц] ***************************************************//
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = 6) then
Result:= True;
end;

procedure ShowComponents(CurPageID: Integer);
begin
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
ModNameLabel.Hide;
WizardForm.WelcomeLabel1.Hide;
WizardForm.FinishedHeadingLabel.Hide;

case CurPageID of
wpWelcome:
begin
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
ModNameLabel.Show;
end;
wpFinished:
begin
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
ModNameLabel.Show;
WizardForm.NextButton.Left := ScaleX(590);
end;
end;
end;

function InitializeSetup: Boolean;
begin
ExtractTemporaryFile('isskin.dll');
ExtractTemporaryFile('Tiger.cjstyles');

LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result:=True;
end;

procedure InitializeWizard();
begin
RedesignWizardForm;
CreatePageComponents;
InitInfo();
end;

procedure CurPageChanged(CurPageID: Integer);
begin
ShowComponents(CurPageID);
end;

procedure DeinitializeSetup;
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin;
end;

function InitializeUninstall: Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\Tiger.cjstyles'), ExpandConstant('{tmp}\Tiger.cjstyles'), False);
FileCopy(ExpandConstant('{app}\WizardImage.bmp'), ExpandConstant('{tmp}\WizardImage.bmp'), False);
FileCopy(ExpandConstant('{app}\WizardSmallImage.bmp'), ExpandConstant('{tmp}\WizardSmallImage.bmp'), False);
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
Result:=True;
end;

procedure InitializeUninstallProgressForm;
begin
RedesignUninstallProgressForm;
end;

procedure DeinitializeUninstall;
begin
UnloadSkin;
end;

Последний раз редактировалось TAY50N, 26-01-2014 в 12:23.


Отправлено: 12:17, 26-01-2014 | #1950



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход