В этой статье я расскажу о том, как создать (точнее изменить оригинальный) экран приветствия вручную, используя лишь программу Restorator для редактирования ресурсов (вы можете использовать другой редактор ресурсов). Конечно, нам понадобится графический редактор, чтобы изменить картинки (я использовал Adobe Photoshop CS2)
Приступаем к работе
Заходим в каталог SYSTEM32 (обычно путь для всех примерно одинаковый - C:\Windows\System32).
Копируем файл logonui.exe в файл myui.exe. Таким образом, мы создадим копию оригинального файла и не будем делать ничего, чему бы могла возразить система (файл myui.exe должен также находиться в папке SYSTEM32)
Открываем файл myui.exe программой для редактирования ресурсов Restorator.
Описание ресурсов
Открыв файл, мы видим ресурсы. Рассмотрим их подробнее.
UIFILE => 1000
Данный ресурс содержит информацию, например, o положении картинок, нужно ли ставить текст "Приветствие" или же заменить его на картинку. Taкже здесь задаются цвета фона и т.д. По ходу создания экрана приветствия мы будем постоянно редактировать данный ресурс.
Bitmap => 1x
Это сами картинки, которые используются экраном приветствия, будем редактировать по порядку. В отличие от картинок Boot Screens (загрузочных экранов), здесь мы не ограничиваемся 16 цветами - это радует
String Table
K этому ресурсу обращаться НЕ будем, если только вы не захотите сменить надпись "Приветствие" (об этом в самом конце)
Ресурсы
100
Эта картинка отображается в левом верхнем углу (блик света)
102
Поле для ввода пароля
103
Не нажатая кнопка "Подтвердить"
104
Нажатая кнопка "Подтвердить"
105
Не нажатая кнопка "Подсказка о пароле"
106
Нажатая кнопка "Подсказка о пароле"
107
Нажатая кнопка "Выключение компьютера"
108
Нажатая кнопка "Выход из сеанса"
109
Стрелка вниз при пролистывании списка пользователей
110
Стрелка вверх при пролистывании списка пользователей
111
Отображаемая панель при пролистывании списка пользователей
112
Панель, которая отображается позади имени пользователя
113
Область, которая будет вмещать в себя картинку пользователя
114
Картинка, загружаемая по умолчанию, если отсутствует картинка пользователя
119
Аналогично с 113, только выделенная
121
Не нажатая кнопка "Выключение компьютера"
122
Не нажатая кнопка "Выход из сеанса"
123
Логотип, который отображается, думаю его трудно не узнать
124
Вертикальная полоса, которая разделяет экран приветствия при просмотре списка пользователей
125
Горизонтальная полоска, которая отображается вверху экрана приветствия
126
Горизонтальная полоска, которая отображается внизу экрана приветствия
127
Аналогично с 123
Редактирование ресурсов
Я не буду описывать процедуру редактирования графики, поскольку это не является целью статьи, и сразу перейду к рассказу о редактировании ресурсов. Я предполагаю, что все файлы графики отредактированы, и вы заменили оригинальные картинки, находящиеся в файле экрана приветствия, вашими изображениями.
Меняем цвета экрана приветствия
Мы будем редактировать строки ресурса UIFILE => 1000. Установка цветов - дело несложное. В каждой редактируемой строке нам необходимо будет установить нужный цвет, который указывается по принципу RGB (Красный Зелёный Синий). Например, строка имеет вид
background: rgb(90,126,220);
Здесь 90,126,220 - 90 красный, 126 зелёный, 220 синий
Я буду предлагать вашему вниманию такую структуру (разберу на примере первую редактируемую нами строку):
Строка 418 - фон всего экрана приветствия
background: rgb(90,126,220);
Здесь
Строка 418
номер строки, к которой следует перейти
background: rgb(90,126,220);
содержимое строки по умолчанию
Начинаем
Строка 418 - фон всего экрана приветствия
background: rgb(90,126,220);
Строка 568 - фон под областью поля пользователя
background: rgb(90,126,220);
Строка 594 - обводка области поля пользователя
bordercolor: rgb(90,126,220);
Строка 669 - фон под областью пользователя, когда курсор мыши находится на левой половине экрана
background: rgb(90,126,220);
Строка 680 - обводка области пользователя, когда курсор мыши находится на левой половине экрана
bordercolor: rgb(0,255,255);
Строка 434 - верхняя область, в стандартном экране приветствия заполнена синим цветом
background: rgb(0,48,156);
Строка 449 - нижняя область, в стандартном экране приветствия заполнена синим цветом
Внимание! Данная строка отличается от вышеупомянутых, т.к. в нижней области не сплошной цвет, а градиент, т.е. нам необходимо указать два цвета - от какого градиент начнётся и каким закончится. Но можно сделать градиент и на верхнюю область, просто замените строку 434 нужной, взяв пример из строки 449 и отредактируйте цвета в строке
Строка 449 по умолчанию
background: gradient(argb(0,57,52,173), argb(0,0,48,156), 0);
В этой строке 57,52,173 - это начальный цвет градиента, данный цвет будет отображаться СЛЕВА
В этой строке 0,48,156 - это конечный цвет градиента, данный цвет будет отображаться СПРАВА
Строка 495 - цвет текста, в стандартном экране приветствия этот цвет белый. Он влияет на надписи "Приветствие" и "Чтобы начать работу, щелкните имя пользователя"
foreground: rgb(239,247,255);
Строка 628 - цвет текста имени пользователя при наведении курсора мыши
foreground: rgb(239,247,255)
Строка 648 - цвет текста, который, например, накладывается на надпись "Выполняется программ: х" (когда пользователь выделен)
foreground: rgb(239,247,255);
Строка 695 - цвет текста имени пользователя, когда курсор мыши находится на левой половине экрана
foreground: rgb(239,247,255);
Строка 463 - цвет текста надписи "Выключить компьютер"
foreground: white;
Внимание! Здесь у нас небольшое исключение - цвет указывается не по принципу RGB, а необходимо указать английское слово, обозначающее нужный цвет. В примере выше цвет "Белый", необходимо заменить слово "white".
Строка 479 - цвет текста надписи в нижней правой части экрана приветствия "После входа в систему можно добавлять..."
foreground: white;
аналогично с предыдущей строкой 463, необходимо заменить слово "white" на нужный цвет.
Строка 507 - цвет текста на тень для надписи "Приветствие"
foreground: rgb(49,81,181);
Здесь уже возвращаемся к принципу RGB.
Строка 906
Эта строка отвечает за два параметра.
В первом замените на цвет вашего фона, чтобы вокруг логотипа не отобразилось "чудо"
(необходимо заменить значения 90,126,220)
Второй устанавливает значения размера картинки логотипа XP. Если вы увеличиваете картинку, необходимо установить новые размеры, чтобы ваша картинка не показывалась в сжатом виде (необходимо заменить 137,86 - 137 это ширина картинки, а 86 это высота)
<element id=atom(product) contentalign=topright padding=rect(0rp,0rp,20rp,20rp) content=rcbmp(123,3,-1,137,86,0,0) background=http://anonymouse.org/cgi-bin/anon-www_de.cgi/http://www.oszone.net/rgb(90,126,220) />
Заставляем систему использовать изменённый экран приветствия
Ну вот и закончено редактирование ресурсов экрана приветствия! Oстаётся заставить систему использовать наш экран приветствия. Это достигается путем редактирования параметров реестра. Открываем редактор реестра (Пуск - Выполнить - REGEDIT - OK. После того, как редактор реестра запустился, переходим в раздел
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
и меняем значение расширяемого строкового параметра UIHost на myui.exe. После чего закрываем редактор реестра.
Чтобы просмотреть созданный экран приветствия необязательно перезагружаться - достаточно выполнить команду "Завершение сеанса" или "Смена пользователя".
Чтобы использовать собственный экран приветствия при установке системы, вам нужно скопировать измененный экран приветствия в папку System32 и импортировать вышеуказанные параметры в реестр во время установки ОС. Твик реестра будет выглядеть примерно так:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
UIHost="%systemroot%\system32\myui.exe"
Примечание. Если путь к экрану приветствия указан неверно, будет использоваться стандартное классическое приглашение на вход в систему. Если вы используете твик для классического приглашения на вход в систему, то экран приветствия автоматически игнорируется, так что вы не можете использовать оба. Однако вы можете иметь оба файла в системе. Просто не используйте GinaDll твик, если вы хотите использовать экран приветствия.
Изменение надписи "Приветствие"
Можно изменить текст надписи, а можно заменить ее на собственный рисунок.
Если вы хотите изменить стандартную надпись "Приветствие", вам необходимо обратиться к ресурсу "String Table". Вы увидите в самом начале ресурса следующее:
7, "Приветствие"
Вот это и есть та самая надпись, которая отображается посередине экрана.
Внимание! Если вы хотите изменить слово "Приветствие", то для изменения ресурса пользуйтесь программой ResHacker, т.к. я заметил, что при использовании программы Restorator происходила ошибка загрузки экрана приветствия.
Если вы хотите убрать слово "Приветствие" и вместо нее установить, например, свой портрет
то делаем следующее. Открываем ресурс UIFILE => 1000 и удаляем содержимое строк 911 и 912 (обратите внимание, что мы удаляем именно содержимое, а не сами строки). Вместо удаленного содержимого вставляем
<element id=atom(welcome) content=rcbmp(999,3,-1,399,120,0,0) />
999 - имя ресурса картинки, вы должны самостоятельно добавить ресурс с именем 999 в группу "Bitmap" и назначить данному ресурсу вашу картинку
399 - ширина рисунка
120 - высота рисунка