¾¾¾  Corona Skin & Check System Requirements  ¾¾¾

 Расширение для Inno Setup. Данный пакет сделает инсталлятор более симпатичным ☺, добавит проверку минимальных требований, слайдшоу, проигрывание музыки в фоне, компактный режим установки и многое другое, а также упростит создание скриптов.

 При несоответствии минимальным требованиям после экрана 'Приветствие' выводится таблица, где неподходящие к данной программе условия отмечены красным цветом.

 Горячие кнопки: F1: тест системы, F2: справка, F3: проигрыватель, F4: мин. требования, F5: О системе, F6: экран, F7: звук, F8: консоль, F9: программы, F10: выход, F11 пароли, F12: обзор текущей папки, Ctrl + S: показать/скрыть фон, Ctrl + D: следующий муз. трек.

 Управление: Правый клик на кнопке 'О системе' – таблица минимальных требований; Клик на имени папки вычисляет объём папок (с Shift – открыть текущую в Проводнике); Клик по компоненту открывает его панель управления. Правый клик на кнопке 'Выход' прерывает установку. Клик на миниЛоготипе скрывает фоновое окно. Щелчок по значку папки на wpSelectDir сменит имя группы или путь установки. Клик по названию страницы переключает Таймер. Двойной клик (Ctrl + X) в плейлисте: остановить/проиграть трек.

 Ключи, расширяющие возможности инсталлятора: (читайте комментарии в Corona.iss)

#define MediaPlayer:	проигрыватель аудио и видео-файлов для указанной папки
#define Requirements:	проверка минимальных требований и таблица сведений о системе
#define ShowOnBackground:    рисунок, слайдшоу или AVI-файл на заднем плане
#define EnableSplash:	экран справки или скриншота, параметры оформления текста
#define PerfectProgressBar:    подсчёт времени до завершения распаковки, горячие клавиши
#define AutoRunSetup:	автозапуск данного файла, если программа уже установлена
#define LicenseScroll:	блокировать флажок о принятии Лицензии, если она не прочитана
#define WizardPos, MiniProgress: смещение основного и компактного окон мастера

 Кроме того: В инсталлятор вписывается дата сборки; Защита от многократного запуска. Мастер переключается в компактный режим. Ïароль/серийник хранятся зашифрованными Удаление файлов и папок, оставшихся после деинсталляции. Автонастройка при сборке. Запрос при установке в системную папку. Деинсталляция уже установленной программы. Вывод процентов установки, объёма и кол-ва распакованных файлов под прогрессбаром.

 Для настройки внешнего вида обложки достаточно изменить значения в [Code]: const.
 Своя обложка для каждого скрипта: поместить вместе с главным скриптом файлы вида 'AppName + пробел + Имя файла' (например 'Corona Main.bmp' заменит 'Main.bmp').

 Описание необходимых файлов (расположенных в папке Corona по-умолчанию)

Corona_kernel.iss	подгружаемый скрипт расширения
WindowsHook.iss	содержит константы и функции хуков
Main.bmp		основная текстура окна скина
MainBevel.bmp		фоновая заливка кнопок
Small.bmp		логотип, расположенный вверху справа
Icons.bmp		значки оформления страниц
MainButtons.bmp	текстуры кнопок Мастера
MusicButtons.bmp	текстуры кнопок проигрывателя
bass*.dll		проигрывание аудио-файлов
InnoCallback.dll		горячие клавиши, таймер, переход на следующий трек
md5.exe			шифрование пароля и серийного номера
Logo.bmp		логотип программы (можно удалить)
Copy.avi			анимация при распаковке (можно удалить)
ClickSound.wav		звук нажатия клавиш/кнопок мыши (можно удалить)
	[к инсталлятору добавляется всего 36 Кб (~248 Кб со всеми дополнениями)]

 Ключи, задающие минимальные требования: (смотри #define Requirements в Corona.iss)
NeedSys - версия системы, NeedSp - cервиспак, NeedMHZ - тактовая частота, NeedRAM - объём ОЗУ, NeedVRAM - объём видеопамяти, NeedSwap - файл подкачки, NeedSoundCard - название аудио-карты, NeedMB - место на диске (если не указывать, вычисляется), NeedRegKey - требуемый ключ реестра, NeedRegKeyOK - сообщение, если ключ найден, NeedRegKeyNO - сообщение, если ключ отсутствует.

Обсуждение и обновления здесь: http://forum.ru-board.com/topic.cgi?forum=5&topic=24767
Благодарности: Genri за множество полезных скриптов, Sampron, Kindly, iTASmania_Inc.

;Пример скрипта, использующего CoronaSkin: (для сборки необходим Inno Setup Preprocessor)

[Setup]
AppName=Corona Example
AppVerName=Inno Setup Corona Skin
DefaultDirName={pf}\Corona Skin

[_ISToolPreCompile]
;#define ...ключи, расширяющие возможности инсталлятора (смотри пример в Corona.iss)
#define	 SkinPath AddBackslash(SourcePath) + "Corona\"
#include	 SkinPath + "Corona_kernel.iss"

[Languages]
#expr AddLocale('Russian', 'compiler:Languages\Russian.isl','','',''), AddLocaleFiles

[Code]
Procedure CurPageChanged(CurPageID: Integer);
    Begin
	ShowSkinPage(CurPageID);
    End;

Procedure InitializeWizard;
    Begin
	InitializeSkin;
    End;

Procedure DeinitializeSetup;
    Begin
	DeInitializeSkin;
    End;