Почему программы просто не убивают и не перезапускают explorer.exe? - PullRequest
7 голосов
/ 18 мая 2009

Я знаю о многих программах, которые после установки (или обновления реестра) нуждаются в обновлении значений. Это можно сделать, убив и перезапустив explorer.exe, однако большинство из них этого не делают, а просят перезагрузить компьютер. Процесс, который занимает много времени.

В настоящее время я пишу инструмент, который будет использоваться только техническими специалистами, и он вносит некоторые изменения в реестр, который нуждается в перезагрузке (или перезапуске explorer.exe) для вступления в силу. Мне не нужно беспокоиться о том, что мои пользователи будут взволнованы перезапуском explorer.exe, так что это не проблема.

Что еще я должен рассмотреть перед этим? Почему другие приложения советуют вам перезагрузить, а не быстрее, перезапустить проводник? Есть ли причина безопасности? Или это просто привычка?

Ответы [ 10 ]

13 голосов
/ 18 мая 2009

Уничтожение и перезапуск проводника не будут делать все, что будет делать перезапуск системы:

1) Любое работающее в данный момент приложение не будет обновлено.

2) Это также может привести к проблемам со стабильностью системы. В частности, я заметил проблемы с некорректным обновлением моего графического драйвера после завершения работы / перезапуска проводника.

3) Это просто пахнет;) Убийство процесса как часть установки кажется просто мерзким.

6 голосов
/ 18 мая 2009

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

Как вы думаете, сколько из них проверено с помощью kill & respawn explorer.exe? Вероятно, далеко не так много, и, конечно, далеко не так тщательно.

Так что, если вы распространяете внутри себя, в очень хорошо контролируемую среду, конечно, продолжайте и убейте & respawn explorer.exe. Но не делайте этого иначе, так как вы переводите компьютер пользователя в очень плохо протестированное состояние, и все может таинственно сломаться, пока он не перезагрузится.

6 голосов
/ 18 мая 2009

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

В зависимости от значка уведомления это может вызвать проблемы с пользователем.

3 голосов
/ 18 мая 2009

Проводник может иметь несохраненное состояние (открытые окна, настройки просмотра папок и т. Д.), Которые теряются при внезапном перезапуске). Я бы не хотел, чтобы установщик убил мой explorer.exe без запроса, и я не уверен, что считаю это улучшением по сравнению с простой перезагрузкой.

В списке вещей, которые не обрабатываются при перезапуске explorer.exe, особенно заменяются библиотеки DLL, которые используются в настоящее время, и программы (за исключением explorer.exe), которые не прослушивают события изменения реестра, но хранят информацию оттуда .

3 голосов
/ 18 мая 2009

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

1 голос
/ 18 мая 2009

В реестре делается довольно много вещей для установленных вещей, которые происходят при следующей перезагрузке; например, записи под ключом «RunOnce» запускаются, ну, один раз, при следующей загрузке. Есть много приложений установки, которые зависят от этого поведения; и поскольку Microsoft не устарела в функциональности и не нашла хорошего обходного пути, люди продолжают писать программное обеспечение, которое ожидает эту функциональность и зависит от нее.

1 голос
/ 18 мая 2009

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

1 голос
/ 18 мая 2009

Всегда ли проводник нужно перезапускать?

Однажды у меня было приложение, в котором был установлен счетчик монитора производительности, который должен был использоваться совместно моим приложением и Perfmon (когда он работал), поэтому его установка должна быть просто для того, чтобы убедиться, что любое приложение было закрыто. Простые ... за исключением драйвера (не могу вспомнить, какой именно, или я бы назвал позором производителя), который загружал каждый объект perfmon dll и держал их всех заблокированными. В результате моему приложению потребовалась перезагрузка.

Теперь, если у вас есть инструмент, который может определить, какие процессы имеют какие из ваших устанавливаемых файлов заблокированы, и предложить закрыть их, хотя пользователь должен принять решение, один из этих процессов может быть важен для Windows ( например, служба рабочей станции или svchost) или важная для пользователя (например, Word с ценой несохраненной работы за день) (это, вероятно, плохой пример).

0 голосов
/ 18 мая 2009

Почему бы не позволить пользователю выбрать, следует ли перезагрузить или перезапустить проводник.

Помните, что средний пользователь не будет знать, что это значит или влечет за собой, поэтому убедитесь, что ваши пользователи действительно "достаточно технически".

0 голосов
/ 18 мая 2009

У перезапуска проводника есть неприятный побочный эффект - уничтожение текущей среды пользователя. Такие вещи, как кнопки панели задач, ожидающие операции и т. П., Будут потеряны, если вы просто убьете explorer.exe.

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