Вопрос

я хочу загрузить свое приложение на C # после входа пользователя в Windows и до появления рабочего стола Windows.в настоящее время я добавил путь к запуску своего приложения в раздел запуска реестра.он загружает мое приложение корректно, но появляется рабочий стол Windows windows [2 секунды], после чего запускается мое приложение

Примечание:

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

Нет правильного решения

Другие советы

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

Ваши цели могут быть благородными, но они расходятся с тем, чего хотят пользователи.Так что в целом они расходятся с тем, как работает Windows (особенно Win-7).

Если у вас есть программное обеспечение, которое необходимо запустить на ранней стадии и которому не нужно взаимодействовать с пользователем, то сервис - это правильный путь.Важно отметить, что в Vista и более поздних версиях Windows служба не может взаимодействовать с пользователем, напримеру них не может быть собственного графического пользовательского интерфейса.Сервисы с пользовательским интерфейсом по своей сути небезопасны.

Один из способов разбить ваше программное обеспечение на разделы - поместить некоторые вещи в сервис и создать поверх него слой пользовательского интерфейса think UI.COM и локальный RPC - хороший выбор для связи между вашим сервисом и уровнем пользовательского интерфейса.

Обратите внимание, что здесь вам нужно будет выполнить работу, чтобы предотвратить замедление загрузки ваших компонентов.Плохо работающие приложения - одна из самых больших проблем на пути загрузки.Вы можете изучить это с помощью Инструментарий для повышения производительности Windows

Это так вроде как я думаю, это возможно, но на самом деле вам предстоит много дополнительной работы.Что вы могли бы сделать, так это заменить оболочку Windows своим собственным кодом, но в этот момент вы несете единоличную ответственность за пользовательский интерфейс, с которым взаимодействует пользователь.

Если ваш код не "в самый раз", вы можете в конечном итоге получить непригодную для использования установку Windows, и я не уверен, что ваши пользователи это сильно оценят.

Также обратите внимание, что могут быть функции, которые вы обычно интуитивно ожидаете получить на компьютере с Windows, которые являются частью командной оболочки, к которым у вас больше не будет доступа.Для получения подробной информации попробуйте http://en.wikipedia.org/wiki/Windows_shell_replacement в качестве отправной точки.

Добавление:
У меня самого есть лишь самые смутные знания о том, что на самом деле технически необходимо для того, чтобы это произошло, но http://dustyant.com/articles/deeshell/ кажется, это достойное объяснение основ.И снова то же самое... здесь будут драконы убедитесь, что вы делаете это на виртуальной машине или что-то в этом роде, чтобы в конечном итоге не заполнять свою основную установку Windows.

Вкратце, что означает "Замена оболочки":после входа в систему Windows запускает приложение под названием "проводник" (не уверен, что это все еще работает для Vista / Win 7...У меня есть смутное воспоминание, что в последнее время это стало немного сложнее), который в основном рисует рабочий стол, панель задач и т.д....можно указать Windows запустить другое приложение вместо графической оболочки по умолчанию.На этом этапе вы контролируете основной пользовательский интерфейс Windows...это означает , что вы отвечает за все, что Windows обычно делает в командной оболочке ...дает вам большой контроль и гибкость и, возможно, много головной боли.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top