И так, после столь долгого отсутствия я наконец-то написал новый пост в эту тему.
Расскажу я вам сегодня уникальной разработке компании Stardock – WindowBlinds. Спрашиваете, почему уникальной. Да потому, что аналогов у нее нет на сегодняшний день. А те программы, которые пытаются хотя бы частично имитировать деятельность WB, только пытаются. Ну, допустим, попробуйте Vistal или TrueTransparency. Незабываемо?! WB программа коммерческая (это уже о многом говорит), развивается почти 10 лет. За это время код наверняка был вылизан. Если проблемы и есть, то это вина не WB. Перейдем сразу к делу.
Принцип действия.Даже для меня он поначалу оставался загадкой. Но всегда было интересно, как же работает эта программа? Журнальные публикации и интернет отчасти эту тайну открыли.
В папке Windows\System есть небольшой файлик ComCtl32.dll. Именно эта библиотека содержит средства для построения характерных элементов окна – кнопок, вкладок, флажков, переключателей и т.д. Там же лежит файл User32.dll. Его задача – построение заголовков и бордюров окон. Ну и панели задач в том числе. Когда активному процессу требуется прорисовать окно, он обращается к User32. Тот, в свою очередь, выделяет ресурсы, и рисует на экране пустое окно. Далее процесс обращается к библиотеке ComCtl32 и дает указания, какой элемент куда поместить. Обе библиотеки взаимодействуют с видеодрайвером – результат этого взаимодействия – аккуратное окошко на экране. Конечно, приведенная - результат сильного упрощения огромной массы данных. На деле все намного сложнее. Кроме того, в разных версия ОС есть свои особенности. Так, допустим, в WindowsXP есть такая служба «Темы». Она вносит в работу двух перечисленных библиотек свои коррективы, добавляя визуальное оформление к элементам окна. Виста - вовсе отдельный разговор. Если стиль Aero Glass активен, видеокарта пашет в 3D режиме. Дополнительно функционирует служба Desktop Window Manager, которая реализует возможность манипуляции с окнами в пространстве – функцию Flip 3D. Да и само взаимодействие OC и приложений не такой уж простой процесс, но это уже тема отдельной статьи.
При установке WB прописывает в системе свой драйвер. Его задача перехватывать то, что идет на выходе библиотек ComCtl32.dll и User32.dll. Затем драйвер накладывает на элементы окон собственное оформление и, используя DirectDraw, выводит изображение на экран, попутно добавляя графические эффекты и аппаратное ускорение. Именно DirectX позволяет WB работать, потребляя 0% ресурсов процессора. Зато узким местом может стать видеокарта, а еще возрастают требования к памяти. Чтобы система не потерпела крах, WB-драйвер перед применением собственных стилей отрубает службу «Темы», так как она больше не нужна. Затем грузит в память тему и начинает перекрашивать окна. Через несколько секунд мы можем лицезреть обновленный интерфейс.
Красота требует жертв. WB это правило подтверждает. Тихо сидевший в 32 килобайтах памяти драйвер, вырастает до нескольких мегабайт, плюс неплохо грузит видеокарту. Кроме этого, если запускаются приложения, использующие DirectDraw, могут возникать очень забавные глюки. Не менее забавные глюки могут возникнуть и в том случае, если некоторые элементы интерфейса приложение прорисовывает само. В первом случае внутри окна может появиться совершенно непонятная мазня из обрезков разных рисунков. Во втором – при наведении мыши на такие элементы возникают тормоза, плюс элемент под мышью искажается, иногда частично, а ингда до не узнаваемости. В основном такие глюки вылезают при открытии меню. Остальные элементы окон прорисовываются почти всегда нормально. Чтобы не быть голословным приведу пару примеров. Запустите WB и МайлАгент. Щелкните в Агенте по кнопке меню. Вылезет прямоугольник. Пустой. Хотя, бывает, что с некоторыми темами таких проблем нет. А иногда прямоугольник сам по себе превращается в меню (только сильно тормозит). А в Download Master меню вообще с любой темой глючит. Бывает, что при открытии меню DM вообще зависает намертво – Access Violation. В общем вариантов предостаточно.
ВерсииВот и до версий добрались. На сегодняшний день можно найти 4 версии программы.
WB 4.6 – самая старая версия. Единственная, которая может работать под Win98/2000. Функциональность такая же, как и службы «Темы» в WindowsXP. Это значит, что особо не разгуляешься

, каких-то уникальных изысков от нее искать не придется. Но тот факт, что она работает под Win98 уже говорит о многом.
WB 5.1 – эту версию я использую. Именно в ней было впервые реализовано аппаратное ускорение, и поддержка технологии PerPixel, что позволило добавить эффекты прозрачности к заголовкам и границам окон и панели задач. Появился также эффект подсветки – при наведении мыши на кнопку, вокруг нее появляется светящийся ореол. Усовершенствовался прогресс-бар – новый эффект вспышки – изображение бегущее по всей длине бара, но отдельно от «наполнителя». Кто видел прогресс-бар в Висте, тот поймет. Эта версия умеет заменять стандартные анимации копирования, перемещения и т.д. файла на произвольную. Также могут изменяться значки на кнопках «Проводника». В общем, много всего – расскажу в следующий раз.
WB 5.5 – неправильно названная версия

Ее стоило бы назвать WB6. Почему? Да потому что в ней появилась поддержка Windows Vista. C производства снята

Вместо нее предлагается версия WB 5.51.
WB 5.51 – точная копия WB 5.5 с небольшими дополнениями. Хотя, в принципе, очень даже большими – наконец-то появилась поддержка 64-битной версии WindowsXP. Больше отличий нет (кроме незначительных). Ставить эту версию можно как на XP так и на Vista. Но темы в каждом случае свои. Можно использовать и не свои, но в этом случае могут возникать очень странные недокументированные эффекты. Особенно странно себя ведут в этом случае главное меню (некоторых частей просто нет - неотображаются) и кнопки управления окном в заголовке. Эта версия WB не совместима со стандартным менеджером окон в Vista. Стардоковские программеры решили эту проблему просто – взяли и сделали свой DWM. Именно он и работает после установки WB. Это даже невооруженным взглядом ощущается. Ну и конечно абсолютно уникальный внешний вид системы. Есть еще одна особенность: если индекс производительности меньше 2, то напрочь отрубается PerPixel. Это значит, что прозрачных заголовков и панели задач не увидать в этом случае. Однако, если установить эту версию на XP, то она плюнет на всю производительность, и все что в теме прозрачно, будет прозрачно и в деле. Вот так!
WB 6. Долгожданный релиз. Возможно, что на момент появления этого поста в форуме, программу уже выйдет из стадии бета-тестирования и начнет распространяться на коммерческой основе. Улучшений просто огромное количество. Эту версию я еще не ставил – не люблю бета-версии, но, судя по скриншотам, описанию и отзывам на форумах, можно сказать, что программа просто революционная. Чего же она такого может? Что сразу бросилось в глаза – новое главное меню – теперь оно появляется с анимацией, а не выскакивает сразу (бывает, пару раз моргнет, но это уже недокументированная функция

. Анимируется меню и после появления. Здорово видеть, как меню выходит из огня, и верхушка продолжает гореть до закрытия. Версия для XP добавляет к заголовкам и панели задач эффект размывания (помимо прозрачности). Причем его можно настраивать независимо от используемой темы. Версия для Висты имеет обширные настройки для стиля Aero Glass. Причем их можно менять без применения темы. Такой лояльности раньше не было. Каждая тема включает в себя еще и фоновый рисунок для боковой панели. Выпущено 2 бета-версии. Первая – глюкавая

. Интерфейс – как в WB 5, только настроек побольше. Вторая бета обрела новый интерфейс (похож на тот, что в Office 2007). Надеюсь, что окончательный. Глюков понятно меньше. Настроек много, и все работают

.
Выбор версии.
Какую версию выбрать? Это зависит от предпочтений, версии винды, и, самое главное, возможности оплатить лицензию

Если вы используете Windows2000, то выбор уже сделан. Хоть версия и старая, но за нее все равно придется заплатить. Или сходить на асталависту. Злобные хакеры раздолбали WB 4.6 основательно. Stardock особо не страдает – мало, кому захочется качать такую старую версию.
WB 5.1 – появилась около двух лет назад и сразу завоевала популярность. Цена лицензии – 20 баксов. Весит в сжатом виде 9 мегабайт. Без оплаты работать не будет, даже если скачали и установили. Будет просто вырубаться служба «Темы», а собственная тема не будет применяться. Оплата только по креде Visa или MasterCard. Простые зарплатные карточки, которые есть у каждого, конечно не пойдут – не обольщайтесь. Оплатить через WebMoney тоже нельзя. Хотя сейчас в сети есть посредники, предлагающие услуги по приобретению программ «ВэбМанями». Но этим барыгам, при цене лицензии в $20, придется отдать 30 WMZ. Есть еще вариант – вылечить. Как это делать писать не буду. Если хотите узнать, пишите в аську – расскажу.
WB 5.51. Пользователям XP мало что дает, только ресурсов ест больше. А вот тем, кто юзает Висту понравится. Новые интерфейсы, при полной поддержке Aero – выглядит потрясающе – лучше чем Пэрис Хилтон

. Цена – традиционно 20 баксов. А вот лечение – гораздо более сложный процесс. Можно полностью убить систему. Если даже она останется живой – половина установленных программ точно рухнет. Кроме того, если кто-то незаконно активировал Винду, то она разактивируется чудесным образом (это касается активации с эмуляцией биоса). Так что лучше ставить и лечить после установки системы. Кто хочет убить свою ось - пишите мне в аську.
WB 6. Пока бесплатно. Лечить не надо, потому что сама установка может принести бед больше

. Потому что – бета.
Кстати с возрастанием версии увеличиваются и требования к железу. Но зато цена постоянная – 20 долларов за любую версию.
Frequently Asked Questions!Вопрос: Стандартные темы Windows применяются не ко всем приложениям. Почему WB свои темы применяет ко всем?
Ответ: Да! Есть такая беда. К сожалению многие программы (даже современные) вместо сглаженных экспишных кнопок отображают старые уродливые квадраты. Почему так. Все дело в том, что Майкрософт, когда добавила в XP поддержку тем, не знала, как будут вести себя различные программы, если к ним применится тема. Поэтому было решено использовать так называемые «Манифесты». Манифест – особый файл, написанный на XML, в котором описано, к каким элементам окна можно применять темы, а какие оставить стандартными. Манифест может лежать отдельно от исполняемого файла, а может быть в него внедрен. Темы могут быть использованы только тогда, когда есть соответствующий манифест. Хотя бывает, что Windows раскрашивает темами и те окна, в которых нет манифестов, основываясь на каких-то собственных предпочтениях. Вот тогда смех начинается.
WB – гораздо хитрее. Ему без разницы, есть манифест - нет манифеста. Он все «красит». А благодаря более качественному программированию, делает это лучше. Хотя все же есть глюки. Если Windows не красит окна без манифеста, то WB, чтоб не красить, нужно специально указать – «не крась окна». Если этого не сделать, то иногда бывают забавные эффекты. Например, приложение само формирует меню, а системе лишь сообщает, что это меню, и она должна его воспринимать соответственно. WB в этом случае начнет тоже начнет прорисовывать меню. Ни к чему хорошему это не приведет. Так что широко разрекламированная функция «скинизации приложений, не поддерживающих темы» может выйти всем боком.
Но, конечно, плюсы во много крат перекрывают все минусы в любом случае.
Продолжение FAQ в следующем посте.
Если кто-то вдруг заинтересовался украшалками в любых проявлениях, можете задать мне вопрос прямо в этой теме. Я отвечу обязательно (если буду ответ знать