Запуск приложения перед проводником Windows - PullRequest
3 голосов
/ 23 февраля 2011

Некоторые установочные приложения останавливают (или, кажется, останавливают) нормальную загрузку Windows. Компьютер запускается, пользователь входит в систему, а затем программа установки запускается раньше других (например, проводник Windows).

Как мне воспроизвести это поведение в моей собственной программе?

* Э.Г. 1006 *

  • Загрузка ОС
  • Войти
  • Программа запускается, обновляется и т.д.
  • Запускаются остальные программы (например, Windows Explorer и все, что запускается при запуске)

Ответы [ 4 ]

9 голосов
/ 31 мая 2012

Если вы хотите запустить приложение до запуска оболочки, вы можете добавить значение к значению Userinit в реестре.В этом ключе:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon

Существует значение с именем Userinit.Измените его так, чтобы ваша программа запускалась до userinit.exe.Например, чтобы запустить блокнот до инициализации оболочки / всего остального:

C: \ WINDOWS \ system32 \ notepad.exe, C: \ Windows \ system32 \ userinit.exe

Используйте запятые для разделения программ, которые должны быть запущены.

Это работает для Windows XP, Vista и 7.

4 голосов
/ 31 мая 2012

Я не пробовал, но я предполагаю, что это делается с помощью записи в реестре

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup

Есть еще больше разделов реестра - см. Полный список, задокументированный здесь: Определение ключей RunOnceв реестре

Но для вашего случая использования я бы порекомендовал запускать ваше приложение как оболочку рабочего стола, аналогично предложенному решению "vcsjones".После завершения вашей программы вы можете позвонить explorer.exe, чтобы начать загрузку обычного рабочего стола.

0 голосов
/ 31 мая 2012

Вам стоит взглянуть на Windows Task Scheduler .Задачи могут быть запланированы для выполнения, когда пользователь (определенный или любой) входит в систему.Предоставляемый Windows готовый пользовательский интерфейс иллюстрирует, что на самом деле можно сделать с помощью этой стандартной функции Windows.

Другое решение заключается в написании службы Windows (установщик Windows MSI.на самом деле это услуга).

Я не уверен, что вы сможете заблокировать Проводник Windows, хотя ...

0 голосов
/ 23 февраля 2011

Возможно, вы можете обернуть пакетный файл Windows .bat вокруг explorer.exe

@echo off
something.exe
explorer.exe

Но на самом деле это не гарантирует, что он всегда запускается до explorer.exe

.возможно, измените какое-либо значение реестра, чтобы выбрать для этого другую «оболочку» вместо проводника..

Если это то, что вы на самом деле ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...