Ключ BootExecute

Запуск приложений через ключ реестра BootExecute




Автозапуск приложений режима native (так называемого синего загрузочного экрана Windows) задаётся в ветке реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager. Там есть два ключа, позволяющих запустить приложение на этапе загрузки системы. Обычно присутствует только один из них, BootExecute. Это мультистроковый параметр, содержащий строку «autocheck autochk *». После неё можно добавить свою команду запуска. Например, можно поместить native.exe в папку %systemroot%\system32, а в BootExecute прописать строку «native». В результате native.exe запустится сразу после autochk.exe при запуске системы. Здесь же можно указать командную строку процесса, например «native -some -command». Чтобы запустить программу из любого каталога системы, нужно указать полный путь к исполняемому файлу, без NT-префикса, то есть в обычном формате (например, C:\tmp\native.exe).

Стоит помнить о том, что запуск обычных прикладных программ через BootExecute невозможен. В этом ключе могут быть прописаны только специально написанные программы, способные запускаться в native-режиме. Обычные приложения Windows к ним не относятся. Примерами программ, которые могут запускаться через BootExecute могут служить chkdsk (утилита проверки диска) и Native Shell (специально написанный шелл для загрузочного режима Windows).

Модификаторы режима запуска

При указании имени native-приложения, кроме идентификатора autocheck (используется при указании autochk в этом списке) возможны идентификаторы async и debug. Идентификатор debug приводит к установке ProcessParameters->DebugFlags = TRUE. Идентификатор async приводит к тому, что система не ожидает завершения запускаемого процесса, и оно продолжает работать, а система в это время продолжает загрузку. В результате получается приложение, работающее в живой системе, отображающееся в диспетчере задач как запущенное от имени пользователя SYSTEM.

Native-приложение

Второй ключ реестра, через который возможен запуск, носит название SetupExecute и полностью аналогичен BootExecute. Разница между ними в том, что запуск из этих ключей происходит на разных этапах инициализации системы. На этапе запуска из SetupExecute в системе уже создан файл подкачки и инициализированы переменные среды, а на этапе BootExecute еще нет.



Автор: амдф
Дата: 17.03.2011


При копировании материалов хорошим тоном будет указание авторства и ссылка на сайт.