Легкая пластическая XP-рургия

С выходом новой ОС у всех пользователей, рискнувших на нее перейти, появилась возможность не только менять цветовую гамму интерфейса, но и перерисовывать по своему вкусу практически любой элемент GUI.

Любят пользователи персональных компьютеров всяческие аудиовизуальные примочки - эротические обои для Рабочего стола с какой-нибудь пластмассово-силиконовой Памелой Андерсон, озвучивание системных событий крылатыми фразами из фильма "Иван Васильевич меняет профессию", курсоры и иконки из любимого мультика для взрослых "Симпсоны".

Юморной народ даже придумал заменить финальную заставку Windows на "Теперь вы можете выбросить свой компьютер". А уж если вы работаете сисадмином, то все секретарши и бухгалтерши за скринсейвер с трехмерным виртуальным аквариумом тут же отдадут вам и душу и тело (если сможете унести, конечно). Не знаю, с чем это связано - возможно, человеку быстро надоедает однообразие серого интерфейса операционной системы, и он хочет каких-то ярких красок, чтобы было на чем задержать взгляд.

Возможно, это просто попытка проявить свою индивидуальность, сродни кольцу в носу или ирокезу на макушке подростка, не умеющего обратить на себя внимание окружающих другим способом. А может, людям на работе просто делать нечего, ведь тот, кто компьютером действительно зарабатывает себе на жизнь, довольно быстро перестает обращать внимание на всю эту мишуру (которую за окнами прикладных программ и не видно) и больше беспокоится о производительности своей машины, на коей негативно сказывается даже применение красочных обоев, не говоря уж о всем известных программах типа Talisman или Window Blinds.

Но все, что до сих пор было возможно в плане перелицовки интерфейса Windows, по большому счету, было детскими игрушками. Сама Windows не давала особенно разгуляться фантазии, а программы, круто меняющие внешний вид окошек и десктопа, либо безбожно глючили, либо "прихватизировали" большую часть системных ресурсов, либо и то и другое одновременно.

Это, кстати, давало серьезный аргумент поклонникам Linux с его многочисленными интерфейсами в абсолютно бестолковом и некорректном споре "что лучше - Windows или Linux". Так было до дня "икс", вернее - дня "XP", 25 октября 2001 года, когда официально увидела свет новая операционная система - Windows XP, имеющая встроенную поддержку сменных "шкурок".

С выходом новой ОС у всех пользователей, рискнувших на нее перейти, появилась возможность не только менять цветовую гамму интерфейса, но и перерисовывать по своему вкусу практически любой элемент GUI - начиная от внешнего вида кнопки Start и заканчивая скромным "чекбоксом".

Но самое главное, что вся эта благодать осуществляется на уровне операционной системы, а не какими-то приблудными программами, поэтому и системных ресурсов на подобный макияж Windows тратится самый минимум, и глюки, по идее, не должны превышать обычного для "маздая" уровня. И все бы было замечательно, если б в дистрибутив системы или, что более логично, в дополнительный пакет MS Plus! XP были бы включено хотя бы с полдюжины неординарных "скинов", но, к величайшему разочарованию, создатели Windows об этом почему-то не позаботились.

Максимум, чем можно насладиться после инсталляции ОС, - это два типа интерфейса: классический и в стиле XP. Конечно, когда Windows XP победным маршем в полный рост зашагает по свету, то и темы для нее расплодятся на просторах интернета, как поганки под Чернобылем, но уже сегодня имеется неплохой задел, позволяющий издеваться не только над расцветкой "форточек", но и полностью менять некоторые другие элементы интерфейса - об этом я и постараюсь рассказать.

Начальная заставка

Начнем мы издалека, с изменения стартовой картинки. Это, конечно, никоим образом не касается новых возможностей Windows XP по управлению интерфейсом, но для многих будет очень интересно. Учтите только, что все это - недокументированные и несанкционированные трюки с довольно глубоким вторжением в системные файлы, а потому гарантий, что после ваших экспериментов Windows будет работать так же хорошо, как и раньше (ха-ха!) никто не даст, а потому заранее позаботьтесь о путях отхода - резервируйте все и вся.

Заставка эта "зашита" в одном из главных системных файлов - WindowsSystem32

ntoskrnl.exe и без специальных утилит изменить ее невозможно. А потому первым делом качаем из интернета программку Resource Hacker (rpi.net.au/~ajohnson/resourcehacker) - это одна из самых простых в употреблении утилит редактирования ресурсов выполнимых файлов, к тому же бесплатная.

Те, кто уже знаком с подобными "хакерами", могут воспользоваться, например, своим любимым "шароварным" Restorator. Вторая программа, которая нам будет непременно нужна - графический редактор, но не простой "виндовый" Paint, который нам не подойдет ввиду отсутствия у него некоторых функций, а продвинутый - Adobe Photoshop или гораздо более доступный Jasc Paint Shop Pro (www.jasc.com).

Для начала сделаем резервную копию файла ntoskrnl.exe и еще одну копию, которую, собственно, и будем редактировать. Запускаем Resource Hacker и открываем этот последний файл - удобнее всего будет, если вы поместите его в папку самого Resource Hacker. В левой части интерфейса "хакера" видим дерево ресурсов, и в первой его ветви "Bitmap" - 12 картинок.

Сочетание изображений с номерами 1, 8 и 10 складывается в заставку версии XP Pro, а 1, 7 и 9 - варианта Home Edition. Мы будем работать с профессиональной Windows. Выбираем номер 1 - это и есть сама заставка, остальные картинки - лишь ее сопутствующие элементы. Но она гораздо больше напоминает "Черный квадрат" Малевича, а не "виндовый" логотип, - скажете вы!

Терпение, сейчас все станет ясно. В меню "Action" нашего "хакера" выбираем команду "Save Bitmap" и указываем для "выдранного" из ntoskrnl.exe bmp-файла удобную директорию, назвав его так же, как он обозначен и в самом ntoskrnl.exe, то есть 1.bmp, чтобы не запутаться. Повторяем такую же процедуру с картинками 8 и 10.

Теперь нам нужно их отредактировать в Paint Shop Pro - рассматриваем эту программу, поскольку она немного попроще. Когда вы откроете в нем эти изображения, то увидите только сплошную черноту - для того чтобы "проявился" настоящий логотип, нужно загрузить из интернета специальные палитры. Для Paint Shop Pro это файл www.thetechguide.com/howto/xpbootlogo/16.pal, а для Adobe Photoshop - www.thetechguide.com/howto/xpbootlogo/16.act. После этого в Paint Shop нажимаем клавиши Shift + O и выбираем в появившемся окне файл 16.pal - опция Maintain Indexes в этом диалоге ОБЯЗАТЕЛЬНО должна быть включена.

Теперь мы наконец-то видим вместо черноты привычный логотип Windows XP, редактируем и изменяем его и остальные изображения как вашей душе угодно, главное - соблюсти изначальные размеры этих картинок и работать с заданной палитрой.

После сохранения переделанных картинок снова переключаемся в Resource Hacker и в меню "Action" выбираем команду "Replace Bitmap" - в новом диалоге указываем, какой ресурс следует заменить и чем. То есть в диалоге замены изображения выделяем bitmap-ресурс номер 1, щелкаем кнопку "Open file with new bitmap" и указываем путь к измененному логотипу, после чего давим кнопку "Replace".

То же самое делаем для картинок 8 и 10 и не забываем в меню "хакера" сохранить все изменения (File > Save). Осталось заменить "родной" ntoskrnl.exe на "хакнутый". Из-под Windows сделать это не удастся - нужно загрузить другую ОС, если Windows XP установлена на диске FAT32. Если же вас угораздило выбрать файловую систему NTFS, то доступ к диску из DOS или Windows 9x становится невозможным без применения специальных программ, поэтому оптимальным будет не искать их по всей Сети, а заменить файл таким образом:

1. Перегрузить ПК.

2. Во время загрузки держать нажатой кнопку F8 для входа в загрузочное меню Windows XP.

3. Выбрать режим командной строки (Command Prompt).

4. Снова нажать F8.

5. Войти в систему под именем Администратора.

6. Так же, как в MS-DOS, перейти в папку с измененным файлом (лучше всего, если вы его поместите в корень системного диска) и ввести команду "copy ntoskrnl.exe c:windows system32".

7. Вновь перегрузить ПК. Вот теперь можно "тащиться" от собственноручно нарисованного логотипа.

Есть правда, более элегантный и грамотный способ замены логотипа, вплоть до ручной или автоматической смены нескольких различных заставок, с полным сохранением оригинала ntoskrnl.exe. Для того чтобы им воспользоваться, сделайте несколько "хакнутых" файлов ntoskrnl.exe с разными логотипами, добавляя к названию каждого файла порядковый номер, например: logo1.exe, logo2.exe, logo3.exe и так далее.

Обратите только внимание, что название файлов должно соответствовать стандарту 8.3 (8 букв - название и 3 - расширение). В корне системного диска найдите скрытый файл boot.ini и откройте его в Блокноте. Если у вас две ОС, то вы увидите примерно такие строки:

[boot loader]

timeout=5

default=C:

[operating systems]

C:="Windows Millennium Edition"

multi(0)disk(0)rdisk(0)partition(2)WINNT=

"Windows XP Professional" /fastdetect

Допишите после последней строки:

multi(0)disk(0)rdisk(0)partition(2)WINNT=

"Windows XP Professional 1" /fastdetect /kernel=

logo1.exe

multi(0)disk(0)rdisk(0)partition(2)WINNT=

"Windows XP Professional 2" /fastdetect /kernel=

logo2.exe

multi(0)disk(0)rdisk(0)partition(2)WINNT=

"Windows XP Professional 3" /fastdetect /kernel=

logo3.exe

Теперь нужную заставку можно будет выбирать прямо в расширившемся загрузочном меню, по соответствующему номеру. А если вы вместо номеров проставите названия, соответствующие темам заставок, то их выбор еще более облегчится.

При этом сохранится возможность загрузки и нетронутого рукой мастера ntoskrnl.exe. Автоматизировать же выбор заставок, вернее, изменение файла boot.ini, поможет небольшая утилита LWD Kernel Selector, которую можно взять по адресу www.littlewhitedog.com/images/reviews/

other/00025/lwdkernel.zip. Для случайной смены заставок достаточно поместить в папку WindowsSystem32 побольше пронумерованных "хакнутых" файлов ntoskrnl.exe, саму программу LWDKernel.exe и закинуть в автозагрузку ярлык на запуск LWDKernel.exe с ключом "-random". Правда, программа эта сыровата и в случае с мультизагрузочными системами редактирует файл boot.ini неверно, так что не забывайте о резервировании.

Экран входа в систему

Сразу после начальной заставки пользователя встречает экран регистрации - Welcome Screen. Если за компьютером работает несколько человек, то именно здесь нужно выбрать свою учетную запись и ввести пароль. Если же пользователь один, то операционная система лишь поприветствует его и регистрация произойдет автоматически.

Кстати, если вам очень хочется, чтобы помимо учетной записи пользователя предлагалось еще войти в систему и под именем Администратора, то просто добавьте в раздел реестра

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonSpecial

AccountsUserList

параметр "Administrator"=dword:00000001, и на экране появится еще одно поле - "Administrator". Но лучше не нарушать приятный дизайн этого диалога, а "логиниться" админом, вызвав обычный диалог входа в Windows.

Для этого, когда появится Welcome Screen, просто дважды нажмите клавиши Ctrl+Alt+Del - появится старое доброе окно для ввода имени и пароля пользователя.

Но мы отвлеклись от главного - как перерисовать Welcome Screen? А перерисовать его тоже не очень просто и даже сложнее, чем начальную заставку, поскольку и он хитрым образом закодирован внутри одного из системных файлов, а именно - WindowsSystem32logonui.exe.

Tехнология его изменения такова. Опять копируем файл в две разных папочки - в одной сохраняем его исходный вариант, чтобы без проблем вернуть на место в случае неудачи, а в другой оставляем файл, который и будем препарировать. Берем уже известную программу Resource Hacker и открываем в нем подготовленный к экзекуции logonui.exe. Да! совсем забыл!

Прежде чем приступать к операции, надо представить, что же вы хотите получить, а еще лучше - сделать скриншот этого диалога и изменить его в каком-нибудь графическом редакторе так, как вы задумали. Учтите только, что для начала никаких серьезных переделок не стоит планировать - общая структура картинки должна сохраниться. А это - широкая полоса сверху, отделенная от основного фона узкой разноцветной ленточкой и такая же полоса с ленточкой снизу, плюс картинка в верхнем левом углу экрана - в исходном варианте это что-то типа слабой засветки.

Именно эти элементы мы и попробуем изменить. Потом, когда вы досконально разберетесь, как все это закодировано в logonui.exe, сможете уже более заметно отойти от первоначального шаблона, в том числе изменить стандартные надписи в диалоге регистрации пользователя и выключения компьютера - найдете их в ветви "String Table" программы Resource Hacker.

Итак, в Resource Hacker открываем ветвь UIFILE10001033 (последняя цифра может отличаться) и в правой части окна программы двигаем полосу прокрутки вниз до тех пор, пока вместо белого поля не появятся первые строки кода:

element

{

background: argb(0,0,0,0);

}

element [id=atom(contentcontainer)]

{

background: rgb(90,126,220);

и так далее.

Последняя строка - это как раз цвет основного фона нашей картинки, выраженный в виде RGB (то есть тремя цифровыми индексами - красного, зеленого и синего цветов). Откройте "виндовый" редактор Paint и в меню Colors > Edit Colors > Define Custom Colors введите эти значения в соответствующие поля "Red", "Green" и "Blue" - получите тот самый голубой цвет, который наблюдаете при каждой загрузке ОС.

Теперь откройте в Paint подготовленную заранее картинку-черновик и определите новые значения RGB, используя элемент управления "пипетка", - они отобразятся в окне "Define Custom Colors" - или определите их вручную, двигая курсор по цветовой карте. Теперь, когда мы знаем RGB-значения нового цвета основного фона, вводим их вместо старых, например, "background: rgb(23,

16,24)" для темно-серого цвета.

Следуем дальше - ищем строки

element [id=atom(toppanel)]

{

background: rgb(0,48,156);

То, что это описание вида верхней темно-синей полосы можно догадаться по фразе "[id=atom(toppanel)]". Меняем ее цвет - вместо "background: rgb(0,48,156)" вводим новые значения. Еще чуть ниже видим параметры нижней панели:

element [id=atom(bottompanel)]

{

background: gradient(argb(0,57,52,173),

argb (0,0,48,156), 0);

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

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

Раскроем теперь ветвь Bitmap1001033 - увидим тот самый мутно-голубой блик света, который, если присмотреться, можно заметить в левом верхнем углу заставки. Для того чтобы его заменить на другое изображение, нужно, чтобы оно было в формате BMP. В меню "Action" Resource Hacker выбираем команду "Replace Bitmap", в появившемся диалоге вновь находим ресурс за номером 100 и указываем путь к файлу с картинкой, которая его заменит, - проще пареной репы. Осталось еще только указать размеры новой картинки, чтобы при ее отображении не было никаких искажений. Для этого опять возвращаемся в ветвь UIFILE10001033 и, нажав клавиши Ctrl+F, находим строку, начинающуюся с =flowlayout(1,3,2,3) layoutpos=client сontent=

rcbmp(100,0,0,XXXrp,YYYrp,1,0)>, где XXX и YYY - новые значения длины и ширины картинки (узнать их можно из свойств bmp-файла). Желательно, чтобы картинка не заползала на ту область, где размещены кнопки с именами зарегистрированных в системе пользователей, иначе будут наблюдаться неприятные эффекты при отображении нашего диалога.

Вот, все и готово, осталось только заменить исходный файл logonui.exe на тот, что мы получили после нашего получасового эксперимента. Проще всего это сделать из-под другой операционной системы, либо из режима защиты от сбоев, поскольку служба защиты системных файлов Windows XP не позволит этого, пока мы работаем в этой ОС. Предусмотрен и другой, более легитимный способ смены заставки - внесение в раздел реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon параметра "UIHost", значением которого является путь к альтернативному файлу logonui.exe.

При этом исходный "виндовый" logonui.exe остается на своем законном месте в неприкосновенности и возврат к нему осуществляется простым удалением параметра "UIHost". Преимущество такого подхода - в отсутствии необходимости замены системного файла из-под другой ОС.

Если же весь процесс редактирования заставки показался вам не столько увлекательным, сколько чересчур сложным и нудным, то можете воспользоваться уже готовыми чужими дизайнерскими опытами, если посетите, например, сайты boomgames.com/xpthemes/browse.php?type=logon, home.wanadoo.nl/web.wacker/index2.htm, www.digital-assassin.com/~xp/, www.lakerscenter.com/xp/, www.themexp.org/view.php?type=login, на которых уже собрано немало неплохих заставок. Думаю, на первых порах они окажутся куда лучше нашей с вами самодеятельности.

Недостаток же применения скачанных из интернета logonui.exe один - отсутствие уникальности. Используя то, что выложено на всеобщее обозрение вы, естественно, всегда будете знать, что точно так же выглядит Windows и у тысяч других пользователей. Да и нет гарантии, что какой-то недоброжелатель не прикрепил к файлу хитрый троянский вирус.

Хотя, благодаря огромному числу уже готового материала заставку можно менять хоть каждый день. Утилиты для визуального редактирования экрана регистрации, насколько мне известно, пока не существует, а вот программка, которая предельно упрощает управление этими заставками и их смену, есть - XP Logon UI (xplogonui.stormpages.com).

С ее помощью вы не только сможете оперативно переключаться между разными заставками, но и просматривать их прямо в окне программы, что очень удобно. Нужно только в директории D:WINNTResources создать папку Logonui, а внутри ее - собственные подпапки для каждого logonui.exe - XP Logon UI сама внесет нужные данные в реестр, и при следующей перезагрузке вас будет радовать новая необычная картинка.

Стили интерфейса

А как же знаменитые стили Windows XP? Как сделать, чтобы "Форточки" сияли всеми цветами радуги? А очень просто - взять уже готовые на сайтах boomgames.com/xpthemes/browse.php?type=theme, www.themexp.org/view.php?type=vs - там этого добра как собак нерезаных. Новая оболочка устанавливается несложно.

Качается ZIP-архив с файлами темы, файлы распаковываются в папку D:WINNTResourcesThemes, запускается диалог "Display Properties", и на вкладке "Themes" устанавливается только что полученный свежий и, соответственно, пока еще не опостылевший макияж Windows. Иногда нужно еще вручную выставить нужный стиль на вкладке "Appearance" того же диалога свойств дисплея. Выбор тем в интернете более чем богатый.

Что, тоже хочется все сделать самостоятельно, чтобы ни у кого и никогда не было ничего похожего? Тогда разбирайтесь с мощнейшей программой StyleBuilder (www.tgtsoft.com) - она предназначена как раз для создания своих собственных уникальных стилей.

Правда, вас ждет серьезное потрясение, когда вы увидите, как много элементов интерфейса позволяет полностью перерисовывать эта утилита. Любой шрифт, любой цвет, любая форма любого элемента, начиная от окон и заканчивая меню Start. Например, с ее помощью легко изменить цвет и размер шрифта, которым выводятся часики в системной области Панели задач или вид кнопки выключения компьютера в меню Start. Так что, программа эта для настоящих дизайнеров-фанатиков.

Есть и еще одна интересная утилита, которая напрямую предназначена для работы с "фейсом" Windows - Window Blinds XP (www.windowblinds.net). Применительно к этой ОС очередная вариация популярной Window Blinds оказывается вполне приемлемым решением и не стоит бояться, что она вместе с ОС потребует для нормальной работы процессор гигагерц на десять.

Дело в том, что технологии Windows Blinds напрямую интегрированы в операционную систему. Компания Stardock, создатель Window Blinds, помогала Microsoft разрабатывать Windows XP в части поддержки сменных оболочек, а потому можно вполне считать эту программу самым мощным и почти "родным" средством управления внешним видом Windows XP. Тем более что с этой программой поставляются несколько дополнительных "шкурок", которые приятно разнообразят ваш Рабочий Стол.

Еще больше стилей вы найдете на сайте www.wincustomize.com/index.asp, так что - флаг вам в руки (и барабан на шею)!

Полезная мелочь

Ну и на сладкое несколько интересных трюков, относящихся в какой-то мере и к пользовательскому интерфейсу, и к удобству работы с ним. В Windows XP заложена возможность делать Панель задач прозрачной, но, к сожалению, от пользователя она скрыта и для того, чтобы ей воспользоваться нужно обращаться к программам сторонних разработчиков.

Если есть желание не останавливаться на достигнутом, а индивидуализировать еще и Панель задач, то самым оптимальным решением, полагаю, будет микроскопическая программка AlphaTrayXP (tts.by.ru), которая хороша тем, что при старте Windows изменяет свойства Панели задач и сразу же выгружается из памяти, не отнимая ресурсы у более важных приложений.

Тем, кто работает на компьютере в офисе, или просто хочет быть уверенным, что никто не залезет на диск, пока вы на минутку отошли от машины, советую создать на Рабочем столе такой ярлык:

rundll32.exe user32.dll,LockWorkStation.

Назовите его "Блокировать компьютер" и присвойте соответствующую тематике иконку. Теперь, чтобы не волноваться за сохранность приватных файлов, достаточно будет одного щелчка мыши по новому ярлыку и Windows выдаст то самое окно регистрации пользователя, которое мы сегодня пытались извратить и которое, не зная пароля, пройти невозможно.

Если вас раздражает новая системная папка "Shared Documents" в окне Проводника, и вы не собираетесь в ближайшем будущем предоставлять в общее пользование эти самые документы, поскольку локальной сети нет и не предвидится, то попробуйте удалить раздел реестра

HKEY_LOCAL_MACHINESOFTWAREMicrosoft

WindowsCurrentVersionExplorerMyComputer

NameSpaceDelegateFolders

{59031a47-3f72-44a7-89c5-5595fe6b30ee} - папки "Shared Documents" после перезагрузки исчезнут. Желательно предварительно экспортировать эту ветвь реестра в reg-файл, чтобы можно было легко ее восстановить.

На этом, думаю, пора остановиться, иначе весь журнал заполонит одна статья, тем более что нам никто не мешает продолжить тему борьбы с уникальным интерфейсом Windows XP в будущем.

Пока же будет полезным на досуге прогуляться в интернет за самой свежей информацией по этой системе - ссылки на сайты, соответствующие рассмотренной нами проблеме вы найдете где-то поблизости. Их там достаточно много, так что шансов на то, что потеряетесь практически нет.