![]() | |
| Раскрашиваем мышонка при старте |
Начнем с того, что у Мыша есть одна недокументированная особенность – он умеет показывать при загрузке не только так называемый сплэш-скрин по умолчанию, но и то, что вы ему подсунете из любимых своих картинок.
Вместо стандартного сплэш-скрина по умолчанию, выглядящего обычно так:
Вы можете получить, например, следующий вид при старте программы:
Все первоначально было кратко описано тут - http://www.nobat.ru/index.php?id=381.
Там написаны базовые вещи:
Над теми картинками, что у вас есть, производим пункты 1-4 с помощью подручных средств.
В моем случае применялись TotalCommander (для управления файлами, в частности использовалась функция группового переименования) и XnView (для изменения форматов, важное свойство программы – умение конвертировать типы, размеры, применять спецэффекты и умение делать это в пакетном режиме).
Обе программы можно использовать бесплатно.
После того как сделали файлы, подложили в нужную папку и многократными перезапусками Мыша убедились, что все просто изумительно, можно приступить к подготовке распространения данных картинок с целью приобщения друзей и знакомых к подобным мелким радостям жизни.
Можно конечно просто упаковать в формате ZIP или RAR, но для этого надо объяснять непонятливым товарищам, что и куда надо класть, и какие программы надо использовать для распаковки архива.
А с другой стороны, зачем думать своей головой, если это может сделать машина сама.
Вот и поступим по-другому – сделаем собственный инсталлятор.
Достать этот бесплатный "делатель инсталляторов" можно с его официальной страницы http://www.jrsoftware.org/.
В этой программе интерфейс не прост, а очень прост.
Тут главное иметь заготовленный файл или с помощью знаний и справки создать его самому.
Файл для сборки нашего проекта с расширением ISS в самой простой вариации должен содержать следующий текст:
==========начало файла Logo_for_TheBat.iss==========================
#define MyAppName "Golf Logo Theme for The Bat!"
#define MyAppVerName "Golf Logo Theme for The Bat! 1.0"
#define MyAppPublisher "Ivan"
#define MyAppURL "mailto:ivan@mail.ru"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=false
OutputDir=C:\MyLogo
OutputBaseFilename=tb_logo_golf
Compression=lzma
SolidCompression=true
Uninstallable=false
UsePreviousGroup=false
AppendDefaultGroupName=false
ShowLanguageDialog=yes
[Files]
Source: C:\TheBat\bk*.jpg; DestDir: {code:get_tb_path}; Flags: ignoreversion
[Code]
function get_tb_path(nothing: string): string;
var p:string;
begin
RegQueryStringValue(HKCU, ´Software\RIT\The Bat!´, ´EXE path´, p);
result := ExtractFilePath(p);
end;
==========конец файла Logo_for_TheBat.iss==========================
И это практически всё, что нам надо.
В этом файле необходимо внести коррективы по вашим путям и параметрам.
Красным цветом отмечен раздел заголовков и информация об авторе.
Синим цветом отмечен путь и название файла получаемого инсталлятора.
Зеленым цветом отмечен фрагмент, куда надо прописать те файлы, которые мы включаем в инсталлятор.
Само окно "делателя инсталляторов" выглядит вот так:
Остается только нажать кнопку "Compile" или выбрать пункт меню Build -> Compile, и в вышеозначенном месте создастся файл инсталляции.
Вот только небольшой недостаток – размер инсталлятора получается примерно на 250 Кб больше упакованного размера файлов внутри – это, так сказать, плата за удобство и большие неиспользуемые возможности.
А результат можно посмотреть по ссылке http://www.entropii.net/bat_skins/tb_logo_golf_is.exe
Можно использовать небесплатный CreateInstall версии 2003.3.5(http://www.gentee.com), который тоже хорошо делает свое дело.
Открываем программу и создаем новый проект в ней.
Бегаем по вкладкам и настраиваем нужные параметры:
Куда класть готовый инсталлятор:
Какие файлы в него включить:
Как все обозвать и как это будет выглядеть:
Включить следующий параметр – зачем? – он забирает из реестра путь к программе(TheBat.exe) в переменную tb_exe, для того чтоб потом это использовать в ходе инсталляции.
Не забыть указать, куда выбрасывать файлы, но это не важно указать точно (можете использовать любую папку), потому что мы после всех операций подкрутим это, чтоб инсталлятор сам находил Мыша, где бы он не сидел.
Здесь пока настроено в качестве пути #tb_exe#_Logos, что будет соответствовать пути
c:\APack\TheBat\thebat.exe_Logos в моем случае.
Все остальное можете настраивать по вкусу.
По ходу правок запускайте создание инсталлятора и подкрутите параметры по ходу – вкладок много, русский интерфейс программы и русская справка для CreateInstall есть.
Когда будет все готово окончательно, будем править код программы (исходник) для автоматического нахождения Мыша, так как из оболочки напрямую этого не сделать.
Ищем файл проекта в папке Projects из CreateInstall.
По умолчанию это - c:\Program Files\CreateInstall\Projects\TB_LOGO_GOLF.g
Находим блокнотом там следующий кусок:
func unpackfile{}
{
UnpackData( 1, 2, &UnpackDlgAsk, &UnpackProgressBar, MacroDone("#tb_exe#_Logos"), 0)
}
И заменяем на такой кусок (побудем немного программистами):
func unpackfile{}
{
var str path_to_tb
str_set(path_to_tb, strf_getpathowner(MacroDone("#tb_exe#")))
UnpackData( 1, 2, &UnpackDlgAsk, &UnpackProgressBar, path_to_tb, 0)
}
Эта замена и придаст требуемое поведение инсталятору.
После этогот необходимо уже создать инсталятор без оболочки, а это делается на командной строке:
ci.exe "c:\Program Files\CreateInstall\Projects\TB_LOGO_GOLF.g"
ci.exe лежит безусловно в папке c:\Program Files\CreateInstall
Вот вроде бы и все. В нужной папке забираем свежевыпеченный инсталлятор.
То, что получилось у меня, находилось на момент написания статьи по адресу:
http://www.entropii.net/bat_skins/tb_logo_golf.exe
Вариант получается тяжелее, чем предыдущий, однако размер инсталляции получается несколько меньше.
Замечания и комментарии принимаются.
Иван aka Atlanoff
Версия 1.2 - 06.04.2005
ЗЫ. Если кто умеет делать инсталяторы с помощью другого софта и умеет делать автоматическое нахождение папки с Мышем – выйдите на меня и расскажите, как сделать аналог вышеописываемого на вашем софте.
ЗЗЫ. А кто сказал что метод не подходит для применения к распостранению звуковых тем или плагинов?
ЗЗЗЫ. Некоторую коллецию сплеш-скринов можно обнаружить по адресу: http://www.entropii.net/bat_logo/