среда, 9 июня 2010 г.

Создание сборки Miranda

Долгое время мне хотелось создать свою собственную сборку интернет-пейджера Miranda. Не то, чтобы мне не нравились чужие сборки, просто я мог понять для какой цели люди создающие сборку доводят её до того, что в оперативной памяти интернет пейджер занимает 60 мегабайт. При установке подобной сборки на свой компьютер некоторые плагины я отключал, и ещё менял настройки интерфейса. Теперь захотелось сделать что-то своё.
Для создания сборки я взял самую последнюю на тот момент версию miranda-im-v0.8.24-unicode, установил в отдельную папку и стал добавлять плагины по одному, чтобы их было удобно настраивать, а так же с целью чтобы избежать ошибок и конфликтов. После установки miranda в каталоге программы в папке Plugins уже присутствуют несколько плагинов, обеспечивающих работу IM клиента.

avaimg.dll - отвечает за работу с изображениями
avs.dll - сервис поддержки аватаров
chat.dll - необходим для работы некоторых плагинов
clist_classic.dll - классический контакт-лист, не имеющий поддержки режима Multi Window.
dbx_mmap.dll - обеспечивает работу с базой данных miranda
icq.dll - модуль, отвечающий за работу протокола ICQ
jabber.dll - модуль для протокола Jabber
import.dll - позволяет производить импорт контактов из другого профиля
srmm.dll  - работа диалоговых окон

Стремясь создать легковесную сборку я старался достичь её максимальной интеграции в систему,  чтобы она наилучшим образом гармонировала со стандартным оформлением Windows Vista и Windows Seven. Чтобы изменить существующий скин необходимо добавить плагин clist_modern.dll он используется большинством скинов и необходим для их корректной работы. Выбрал скин Particle, так как на мой взгляд он наиболее хорошо сочетается с последними окнами. В дополнение к скину установил иконки с одноименным названием.
Для поддержки истории я подключил плагин historypp.dll чтобы иметь возможность сохранять и просматривать историю сообщений.
Модуль Fingerprint.dll необходим, если вы желаете включить появление всплывающих окон в списке контактов. В настройках этого модуля можно выбрать какая информация будет отображаться в подсказке. Обычно это: Ник, Имя, Фамилия, Время бездействия и т.п. здесь можно добавить или изменить пункты меню.
Чтобы иметь возможность добавлять смайлы в сообщения необходим модуль smileyaddw.dll он позволяет из выпадающего списка выбрать смайл, который вы хотите добавить к сообщению. Набор смайликов я выбрал стандартный - KOLOBOK. На мой взгляд, их вполне достаточно.
Для русификации программы скачал и установил Russian Language Pack
Я стремлюсь чтобы при запуске клиента он автоматически устанавливал статус, который был на момент его закрытия. В этом помогает плагин StartupStatus.dll
С целью борьбы со спапом рекомендую установить stopspam.dll и изменить стандартный вопрос, который используется для проверки.
Часть модулей требует для своей работы tabsrmm.dll - обеспечивает показ оповещений о наборе текста, информирует о новых входящих сообщениях.
Модуль tipper.dll нужен чтобы появлялись всплывающие подсказки при выделении контакта.

После того, как все настройки произведены и вы желаете создать инсталлятор для собственной сборки, на помощь придет прога Inno Setup. За несколько кликов мышью вы сможете добавить необходимые файлы для установки, указать директорию установки по умолчанию, настроить создание ярлыков. Здесь я столкнулся с небольшой проблемой: по умолчанию miranda хранит свои настройки в папке
C:\Users\<имя пользователя>\AppData\Roaming\Miranda
невозможно корректно добавить файл настроек, так как в системе, куда вы будете устанавливать свою сборку имя пользователя может не совпасть с вашим. Я нашел выход из положения, изменив стандартную папку сохранения профилей. Все настройки запуска хранятся в файле mirandaboot.ini параметр ProfileDir отвечает за месторасположение профилей. я создал в каталоге miranda папку Profiles и значению ProfileDir присвоил следующее: "ProfileDir=.\Profiles" Теперь miranda сохраняет настройки в своей собственной папке. Так же можно удалить файл uninstall.exe так как InnoSetup самостоятельно создаст ярлык для удаления вашей сборки miranda. Останется небольшой нюанс - нужно выбрать иконку для вашего инсталлятора. Можно нарисовать самому, а можно воспользоваться уже готовыми. Как вам угодно.

После всех манипуляций моя сборка стала занимать на диске 14 мегабайт, а в оперативной памяти всего 4.3 метра. Такие модули как AntiBoss и всплывающие сообщения я не подключал, ибо мне они не нужны. Изменил только звуковую схему. В общем процесс создания сборок Miranda довольно интересен. Думаю, что в свободное время обязательно модернизирую свою сборку и выложу в сети.

Ссылки: 
http://miranda-planet.com -билды, сборки, скины, плагины, руссификация
http://www.miranda-im.org - домашняя страница miranda, здесь можно скачать последнюю версию
http://addons.miranda-im.org - огромная коллекция плагинов
http://www.iconspedia.com - иконки на любой вкус
http://www.jrsoftware.org/isinfo.php - система создания инсталляторов для win программ
http://depositfiles.com/files/0h02q77i6 - моя первая сборка Miranda