Запуск приложений через ключ реестра 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.
Второй ключ реестра, через который возможен запуск, носит название SetupExecute и полностью аналогичен BootExecute. Разница между ними в том, что запуск из этих ключей происходит на разных этапах инициализации системы. На этапе запуска из SetupExecute в системе уже создан файл подкачки и инициализированы переменные среды, а на этапе BootExecute еще нет.
Автор: амдф
Дата: 17.03.2011
Избранное
Остальное
Лента atom