|
Компьютерный форум OSzone.net » Изменение внешнего вида Windows » Оформление Windows XP » Разное - LogonUI - изменение размеров аватаров |
|
Разное - LogonUI - изменение размеров аватаров
|
Компьютерный шаман Сообщения: 2910 |
Профиль | Сайт | Отправить PM | Цитировать
В интернете очень много интересных модифицированных экранов приветствия (logonUI.exe). Многие авторы кардинально меняют дизайн экрана, и делают размер аватарок большим, по подобию висты. Но, вот беда - размер подложки (PictureFrame) изменить можно, а самой аватарки юзьверя - нет. Она всегда 48 на 48 точек. Поэтому, в этих логонах аватарки не отображаются, а на подложке нарисована жеско заданная аватарка. Она будет едина для всех пользователей. Что не очень красиво.
Найдя красивый логон http://raulwindows.deviantart.com/ar...3-10-111322984 я решил его доработать. После основных доработок ресурсов я покопался IDA в его потрошках. И, вот что получилось: Картинки отображаются реально размером 96х96 точек . Для этого необходимо пропатчить в 3 местах процедуру LogonAccount__OnTreeReady: .text:01009948 push 24h ; nNumber .text:0100994A call ?PointToPixel@LogonFrame@@SGHH@Z ; LogonFrame::PointToPixel(int) .text:010099CB push 24h ; nNumber .text:010099CD call ?PointToPixel@LogonFrame@@SGHH@Z ; LogonFrame::PointToPixel(int) .text:010099D2 push eax ; __int16 .text:010099D3 push 24h ; nNumber .text:010099D5 call ?PointToPixel@LogonFrame@@SGHH@Z ; LogonFrame::PointToPixel(int) Первое вхождение задает размер, когда аватарка грузится из bmp картинки, вторые два - когда невозможно загрузить картинку и загрузка идет из внутреннего ресурса №114. Для патча нам надо в любом HEX - редакторе открыть LogonUI и найти и заменить следующее (3 вхождения): Внимание! Патчим только первые 3 вхождения. 4 не трогаем! После сохранения файла проверяем, что теперь у нас тарки размером 96x96! Но, иметься только проблема, даже две: 1. Менеджер учетных записей всегда создает картинки 48x48 2. При отсутствии картинки logonui сам создает какртинку тоже 48x48. Ищем далее. Искомая функция сидит уже не в LogonUI а в Shell32.dll - без имени, №324. В ее подпрограмме находим: .text:7CAD3F3F jmp short loc_7CAD3F46 .text:7CAD3F41 ; --------------------------------------------------------------------------- .text:7CAD3F41 .text:7CAD3F41 loc_7CAD3F41: ; CODE XREF: sub_7CAD3EAA+6Cj .text:7CAD3F41 push 30h Для патча нам надо в любом HEX - редакторе открыть Shell32.dllи найти и заменить следующее (1 вхождениу): Первый байт отключает вычисления размера модуля, а второй сразу задает размер в 96пикселей. После подмены shell32 на патченную и перезагрузки аватарки создаются 96 px. Только следует учесть, что эта функция только уменьшает картинки. Если же картинка была менее 96 пикселей, то такой она и останется. Но, это не страшно - logonUi сам растянет при отображении до 96x96 точек. При экспериментах учитывайте то, что при ошибке компьютер может не загрузится. Заранее имейте ERD диск или параллельно установленную систему. Пример логона во вложении. Shell32 пропатчте при необходимости сами. PS За основу был взят экран Logon User Interface created by RaulWindows.deviantart.com, правда тут от исходного мало чего осталось. Но, так что, если захотите включить в какие-либо публичные пакеты/сборки, желательно испросить разрешения у автора. Так же хинт для отладки логона. Если неправильно что-то сделать, то после проверки по Win-L может не отобразится сам аккоунт. И войти обратно невозможно. Завершаем работу с перезагрузкой и после загрузки до логона удерживая ctrl-alt жмем два раза del. В окне классического входа вводим имя и пароль и попадаем в виндовс. Чтобы не повторять ошибку, запускаем любой сторонний менеджер, закрываем процесс explorer.exe и запускаем logonui. И. видим, как все отображается. LogonUI можно только прибить из менеджера процессов. Почему надо убивать проводник - потому, что LogonUI проверяет его запущенность. |
|
------- Отправлено: 20:00, 31-01-2009 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Slackware - Изменение шрифтов и их размеров в консоли Линукс. | gambini | Общий по Linux | 7 | 16-10-2009 11:49 | |
Разное - [решено] Изменение размеров иконок в Windows | yoptitt | Оформление Windows XP | 20 | 26-08-2009 00:38 | |
Win32 API - запретить изменение размеров окна | Turman | Программирование и базы данных | 1 | 21-06-2009 21:00 | |
HDD - Изменение размеров дисков при помощи PowerQuest PartitionMagic 8.0 (подскажите!!!) | Metalmar85 | Накопители (SSD, HDD, USB Flash) | 20 | 24-01-2008 20:07 | |
Изменение размеров разделов HDD | SKLAD | Накопители (SSD, HDD, USB Flash) | 13 | 26-09-2006 17:44 |
|