Створюємо свій екран завантаження Windows Vista


Введення в Windows Vista boot screen

Для зміни екрану завантаження Windows XP, необхідно було вносити зміни у виконавчий файл ntoskrnl.exe. Однак зміна ntoskrnl.exe було небезпечною операцією, найменша помилка могла призвести до серйозних помилок системи.

У Windows Vista процес завантаження був змінений. Тепер вся графіка, що використовується при завантаженні системи, переміщена, додані нові завантажувальні додатки winload.exe і winresume.exe, а всі критичні компоненти ядра отримали цифровий підпис. З-за цих цифрових підписів вносити зміни в компоненти ядра більше неможливо, але це зовсім не означає, що не можна змінити екран завантаження Windows Vista.

Важливо про Multilingual User Interface ( MUI )

Windows Vista пропонує нові функціональні можливості в області Multilingual User Interface (MUI). Ці нові функціональні можливості дозволяють розробникам розділити локалізовані ресурси (текстові рядки) і незалежні ресурси (битмапы, іконки, курсори). Зазвичай, окремі .mui файли містять локалізовані ресурси, а виконавчі тепер містять незалежні ресурси. Якщо раніше .dll або .exe був нормальним Win32 PE файлом, включеним в основний код, то в Windows Vista Win32 ресурси автоматичні зчитують додаткові .mui файли.

Цей процес виглядає наступним чином: спочатку, ресурси, знайдені у виконавчому додатку, зчитуються в пам'ять. Потім, система вирішує, який .mui файл використовувати (в залежності від вибраної мови) і зчитує ресурс звідти, накладаючи його поверх лічених до цього ресурсів, замінюючи будь-які вже наявні ресурси! Якщо який-небудь ресурс є в .mui файл, він буде лічений звідти, але якщо його там немає, система візьме його з основного виконавчого файлу (звичайно, якщо він там є). Але яке відношення має MUI до завантажувального екрану boot screen?

Так як .mui файли не мають цифрових підписів, вони можуть бути легко модифіковані. Так що якщо ви хочете замінити ресурс у файлі з цифровим підписом, просто додайте його .mui файл (або замініть в .mui файлі, якщо ресурс вже існує).

Саме за таким принципом ми будемо робити свій екран завантаження Windows Vista. Так що запускайте вашу улюблену програму для роботи з ресурсами Win32, для цього підійдуть Resource Builder або Resource Hacker. Для прикладу візьмемо Resource Hacker.

Зміна картинки екрану завантаження

В даному матеріалі передбачається, що ви встановили Windows Vista в розділ C: жорсткого диска. Якщо у вас Vista встановлена в іншому розділі, змініть букви дисків у відповідності з розділом диска. Перед тим, як приступити до створення свого екрану завантаження Windows Vista, створимо робочу папку (нехай це буде D:\bootscreen\). У неї ми будемо зберігати потрібний файл winload.exe.mui.

1. З допомогою Resource Hacker відкрийте C:\Windows\System32\Boot\winload.exe перейдіть до ресурсу 1 в секції ресурсу RCData (там тільки один ресурс RCData). Збережіть його вміст як D:\bootscreen\winload.wim.

Збережений Windows Image (WIM) файл містить битмапы завантажувального екрану. Ви можете змінити winload.wim використовуючи ImageX.

2. Змонтуйте образ WIM з правами запису в теку D:\bootscreen\mount\ командою:

imagex /mountrw X:\bootscreen\winload.wim 1 X:\bootscreen\mount

Якщо ImageX вдало змонтував образ, то в каталозі D:\bootscreen\mount\ ви побачите два файлу: osload800x600.bmp і osload1024x768.bmp. Ці файли використовуються як завантажувальні картинки boot screen на дозволах 800х600 і 1024х768 відповідно. Ви можете замінити їх на ваші власні, при цьому вони повинні мати той самий формат, назва і розмір.

3. Після зміни цих файлів, підтвердіть зміни в WIM командою:

imagex /unmount X:\bootscreen\mount /commit

4. Тепер D:\bootscreen\winload.wim містить ваші зображення. Скопіюйте C:\Windows\System32\Boot\en-US\winload.exe.mui в D:\bootscreen\winload.exe.mui та відкрийте Resource Hacker.

5. Створіть новий ресурс типу RCDATA з назвою 1 і мовою 1033 (1033 позначає англійська США) і імпортуйте D:\bootscreen\winload.wim як дані ресурсу. Збережіть файл і закрийте Resource Hacker.

Якщо ваша Windows Vista не англійською мовою, то вам доведеться поміняти значення мови на відповідне. Значення для російської мови - 1049).

6. Скопіюйте D:\bootscreen\winload.exe.mui тому в C:\Windows\System32\Boot\en-US\winload.exe.mui.

Ось ми й змінили картинку екрану завантаження. На даному етапі можна зупинитися і задовольнятися своїм зображенням bootscreen'а, але ж ще можна змінити текстову напис екрану завантаження Windows Vista.

Зміна тексту екрану завантаження

1. Відкрийте D:\bootscreen\winload.exe.mui у Resource Hacker, пройдіть до ресурсу osloader.xsl в 23 секції ресурсу, і експортувати його як D:\bootscreen\osloader.xsl.

2. Для зміни тексту екрану знайдіть у файлі osloader.xsl значення Starting Windows Vista на будь-яке бажане.

3. Змінити позицію тексту можна пройшовши до розділу osload-graphics і помінявши значення висоти і ширини елемента textarea.


экран загрузки Windows Vista

На скріншоті явно видна область textarea, можете зробити так, як вам більше подобається.