Проблематика бут-скрін в Windows Vista
До Windows Vista, ресурси бут-скрін лежали в файлі ntoskrnl.exe. Але зміна виконавчого файлу ntoskrnl.exe було дуже небезпечним, це могло призвести до помилки. З Windows Vista процес завантаження був змінений. Наприклад, графіка завантаження була переміщена в нові додатки (winload.exe, winresume.exe), а всі важливі компоненти ядра отримали цифровий підпис. Так що через цифрового підпису, зміни ядра більше неможливі. Чи означає це, що налаштування завантаження прийшов кінець? Ні!
Файли Multilingual User Interface
З Windows Vista пропонує нову функціональність Multilingual User Interface (MUI). Ця нова функціональність дозволяє розробникам розділити локалізовані ресурси (текстові рядки) і незалежні ресурси (бітмапи, іконки, курсори). Зазвичай, окремий .mui файли містять локалізовані ресурси, а виконавчі тепер містять незалежні ресурси. Якщо раніше .dll або .exe був нормальним Win32 PE файлом, включеним в основний код, то в Windows Vista Win32 ресурси автоматичні зчитують додаткові .mui файли. Цей процес виглядає наступним чином: спочатку, ресурси, знайдені у виконавчому додатку, зчитуються в пам'ять. Потім, систему вирішує, який .mui файл використовувати (в залежності від вибраної мови) і зчитує ресурс звідти, накладаючи його поверх до лічених до цього ресурсів, замінюючи будь-які вже існуючі ресурси! Якщо який-небудь ресурс є в .mui файлі, він буде лічений звідти, але якщо його там немає, система візьме його з основного виконавчого файлу (звичайно, якщо там він є). Але яке відношення має MUI до бут-скрін? Важливе!
Налаштування бут-скрін
Так як .mui файли не мають цифровим підписів, вони можуть змінюватися без проблем. Так що якщо ви замінити ресурс у файлі з цифровим підписом, просто додайте його в .mui файл (або замініть в .mui файлі, якщо ресурс вже існує). Це саме те, що ми будемо робити для настройки бут-скрін в Windows Vista, так що запустите вашу улюблену програму роботи з ресурсами Win32, особисто я рекомендую Resource Builder або Resource Hacker.
Інструкції до дії
Перш за все, давайте визначимося з робочою. назвемо її умовно X: \ bootscreen \ і будемо туди зберігати вже змінений winload.exe.mui файл. Я також припускаю, що Windows Vista встановлена на розділ V: (звичайно ж, назви дисків ви можете поміняти в залежності від вашої конфігурації).
1. Відкрийте V: \ Windows \ System32 \ Boot \ winload.exe за допомогою вашої улюбленої програми по роботі з ресурсами, пройдіть до ресурси 1 в RCData і збережіть це вміст як X: \ bootscreen \ winload.wim.
Збережено Windows Image (WIM) файл містить бітмапи бут-скрін. Ви можете змінити winload.wim використовую ImageX.
2. Змонтуйте образ WIM з правами записи в директорію (наприклад, X: \ bootscreen \ mount \) командою:
imagex / mountrw X: \ bootscreen \ winload.wim 1 X: \ bootscreen \ mount
Якщо ImageX вдало змонтував образ, ви побачите два бітмапами в X: \ bootscreen \ mount \. Це osload800x600.bmp і osload1024x768.bmp. Ці зображення використовуються у вигляді бут-скрін на роздільній здатності 800х600 і 1024х768 відповідно. Ви можете замінити їх на свої власні (вони повинні бути бітмапами, мати такі ж імена і приблизний розмір).
3. Після редагування бітмапами, підтвердіть зміни в WIM командою:
imagex / unmount X: \ bootscreen \ mount / commit
5. Створіть новий ресурс типу RCDATA з назвою 1 і мовою 1033 (1033 позначає англійська США) і імпортуйте X: \ bootscreen \ winload.wim (* .wim файли - це бінарні файли).
Якщо у вас не англійська версія Windows Vista, вам доведеться поміняти значення мови на відповідне. Список значень мов ви можете знайти тут.
Налаштування тексту при завантаженні
Ви також можете змінити текст при завантаженні. Тут потрібен досвід роботи з XML.
1. Відкрийте X: \ bootscreen \ winload.exe.mui with з вашої улюбленої програмою, пройдіть до ресурсу OSLOADER.XSL та експорту його як X: \ bootscreen \ osloader.xsl.
2. Змінити стартовий текст Windows Vista можливо, пройшовши до шаблону osload-status (скористайтеся пошуком) і замінивши «Starting Windows Vista» на ваше власне значення.
3. Змінити позицію тексту можна пройшовши до розділу osload-graphics і змінивши значення висоти і ширини елемента textarea.