Как обновить расширение оболочки проводника Windows без перезагрузки

Существует dll расширения проводника Windows.
Эта dll может обновляться автоматически, если на нашем сервере есть новая.

Я переименовываю исходную dll и загружаю новую dll. Но Проводник Windows никогда не перезагружает новый.

Поэтому я закрываю проводник и перезапускаю его.
Но это выглядит очень некрасиво. И я не хочу рекомендовать пользователю перезагружаться.

Как я могу сказать проводнику Windows перезагрузить новый?


person Benjamin    schedule 15.10.2010    source источник


Ответы (2)


Библиотеки DLL загружаются загрузчиком программы, поэтому только во время загрузки процесса.
Вы можете создать программу, которая явным образом открывает и использует библиотеку DLL, и добавить команду, которая закроет ее, снова откроет, пересвяжет все. Но для этого вам нужна поддержка программы, поэтому вам понадобится Explorer для ее поддержки или для изменения ее кода.

Итак, с вероятностью 99% вы не сможете делать то, что хотите, без перезапуска проводника Windows. Вообще.

person Jean    schedule 15.10.2010
comment
Как насчет внедрения DLL? - person Forivin; 16.12.2015

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

person Samball    schedule 14.02.2012
comment
Для ясности, так как это первый результат в Google, Control+Shift+Escape -> Процессы -> Завершить процесс explorer.exe. Затем перейдите в «Приложения», нажмите «Новая задача»… введите «explorer.exe» и нажмите «ОК». Перезагрузил новые расширения нормально. Вероятно, это не лучший способ сделать это, но, похоже, он работает. - person shmeeps; 30.03.2015
comment
Точно не Ctrl + Alt + Escape; это Ctrl+Alt+Del - person uphill; 08.06.2016