Исходя из этого вопроса stackoverflow, вам лучше всего запустить программу как сервис. Одним из вариантов является использование NSSM. Соответствующие биты из ответа:
Источник: Понимание процесса запуска - учебник по Windows 7
Обычная последовательность запуска для Windows 7:
- Фаза самотестирования при включении питания (POST)
- Начальная фаза запуска
- Фаза диспетчера загрузки Windows
- Фаза загрузчика Windows
- Фаза загрузки ядра
- Фаза входа
Этап загрузки ядра Загрузчик Windows отвечает за загрузку ядра Windows (Ntoskrnl.exe
) и HAL в память.
Вместе ядро и HAL инициализируют группу программных функций, которые называются исполнительной системой Windows. Руководитель Windows обрабатывает информацию о конфигурации, хранящуюся в реестре в HKLM\SYSTEM\CurrentControlSet
и запускает службы и драйверы. Следующие разделы предоставляют более подробную информацию о фазе загрузки ядра.
Фаза входа
Подсистема Windows запускает Winlogon.exe
, системную службу, которая позволяет вам входить и выходить из системы. Winlogon.exe
затем делает следующее:
- Запускает подсистему служб (
Services.exe
), также известную как SCM. SCM инициализирует службы, которые запись реестра Start обозначает как автозагрузку в подразделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Servicename
.
- Запускает процесс локального центра безопасности (LSA) (
Lsass.exe
).
- Анализирует комбинацию клавиш Ctrl+Alt+Delete в приглашении «Начать вход» (если компьютер является частью домена AD DS).
Функция пользовательского интерфейса входа в систему (LogonUI) и поставщик учетных данных (который может быть стандартным поставщиком учетных данных или сторонним поставщиком учетных данных) собирают имя пользователя и пароль (или другие учетные данные) и надежно передают эту информацию в LSA для проверки подлинности. Если пользователь предоставил действительные учетные данные, доступ предоставляется с использованием либо протокола проверки подлинности Kerberos V 5 по умолчанию, либо Windows NT LAN Manager (NTLM).
Winlogon инициализирует функции безопасности и аутентификации, в то время как PnP инициализирует службы автоматической загрузки и драйверы. После того, как пользователь войдет в систему, набор элементов управления, на который ссылается запись реестра LastKnownGood
(находится в HKLM\SYSTEM\Select
), обновляется с помощью содержимого в подразделе CurrentControlSet
. По умолчанию Winlogon запускает Userinit.exe
и оболочку Windows Explorer. Userinit может затем запустить другие процессы, в том числе:
- Параметры групповой политики вступают в силу Параметры групповой политики, которые применяются к пользователю и компьютеру, вступают в силу.
Запуск программ запускается, если они не переопределены параметрами групповой политики, Windows запускает сценарии входа, программы запуска и службы, указанные в следующих разделах реестра и папках файловой системы:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runonce
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
SystemDrive\Documents and Settings\All Users\Start Menu\Programs\Startup
SystemDrive\Documents and Settings\username\Start Menu\Programs\Startup
Некоторые приложения могут быть настроены на запуск по умолчанию после установки Windows, включая Защитник Windows. Производители компьютеров или ИТ-отделы могут настраивать другие приложения запуска.
Запуск Windows не будет завершен, пока пользователь не войдет в систему на компьютере. Если при входе в систему происходит сбой запуска, у вас есть проблема со службой или приложением, настроенным для автоматического запуска.