Существует множество способов загрузить программу. Перечислю известные мне способы загрузки через реестр:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - здесь лежат программы, которые грузятся под всеми пользователями. Сюда надо писать автозагрузку программ.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce - программы, которые запускаются только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы. Удобно писать сюда чистку логов\настроек после удаления программы.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx - программы, которые запускаются только один раз, когда загружается система. Этот раздел используется при инсталляции программ, например для запуска настроечных модулей. После этого ключи программ автоматически удаляются из данного раздела реестра. Данный раздел отвечает за запуск программ для всех пользователей системы.
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run - программы, которые запускаются при входе текущего пользователя в систему.
  • HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceRunOnce - программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices - программы-сервисы, которые загружаются при старте системы до входа пользователя в Windows.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServicesOnce - сервисы отсюда загружаются только один раз, когда загружается система.
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run - сюда пишутся программы, которые будут запускаться под всеми пользователями. При этом программы из этого списка не отображаются в списке программ доступных для отключения в msconfig.exe, а также определяются не всеми менеджерами автозагрузки.
  • Программы могут запускаться и из следующего раздела реестра:[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows]

    Параметры:

    "load"="programma" — программы запускаемые до входа пользователя в систему:
    "run"="programma" — программы запускаемые после входа пользователя в систему.

    Эти параметры — аналог автозагрузки из Win.ini в Windows 9х. Пример: запускаем Internet Explorer до входа пользователя в систему и Блокнот после входа пользователя в систему:

    [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows]
    "load"="iexplore.exe"
    "run"="notepad.exe"

Источник