2

По крайней мере, было несколько тем о заменах Проводника, так называемых альтернативных файловых менеджеров, здесь, в Superuser. Похоже, что тема перехода: https://superuser.com/q/90/60860

Но я хотел бы иметь более узкое подмножество этих доступных вариантов с функцией, которую я указал в заголовке: то есть меня интересуют только такие замены Explorer, которые интегрируются с Windows и не нуждаются в открытии или запуске. , Другими словами, если я дважды щелкну папку, папка будет открыта этой заменой Проводника. Это в отличие от того, сколько существует альтернативных файловых менеджеров, которые не переходят из Explorer. Я провел некоторый поиск, и пользователь fluxtendu связал классную страницу википедии, содержащую сравнение функций между файловыми менеджерами, но, к сожалению, в ней не упоминается функция, которую я ищу.

Я уже знаю из личного опыта того, кто удовлетворяет этому критерию: Explorer++. И мне сказал afrazier, что Directory Opus и explorer2 также делают это. Какие еще варианты существуют?

И, конечно же, я был бы признателен за рекомендации. Я думаю, что я не был полностью доволен Explorer++, поэтому я хочу попробовать другие.

1 ответ1

5

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

Возможно, вы захотите посмотреть на замены оболочки.


Обновить

Хорошо, позвольте мне немного подробнее рассказать о моем понимании вещей.

Как работает вся система

Начнем с моего рабочего стола.
Мой рабочий стол нарисован оболочкой. Оболочка предоставляется начальным процессом explorer.exe который запускается при запуске Windows. Если у меня есть папка на рабочем столе:

Я могу дважды щелкнуть по нему, чтобы открыть его:

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

Так почему Windows решила использовать explorer.exe для отображения этой папки?
Ну, как я уже сказал, рабочий стол уже является процессом explorer.exe . Поэтому он будет просто использовать ShellExecuteEx() чтобы позволить оболочке решить, что с ней делать. После этого оболочка создаст новый экземпляр explorer.exe (поскольку, насколько мне известно, это сложно сделать).

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

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

Но никто не мешает этой новой оболочке вызывать ShellExecuteEx() , которая снова вызовет оболочку по умолчанию и, следовательно, explorer.exe !

И что теперь?

Так что если вы действительно хотите заменить Windows Explorer, замените файл explorer.exe . Потому что, в конце концов, каждая программа может попытаться выполнить C:\Windows\explorer.exe напрямую, и тогда у вас снова будет тот же старый Проводник.

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

Как приложение XYZ это делает?

Есть несколько приложений, которые просто подключаются к Explorer, например QTTabBar. Может быть, Explorer++ работает так же. Таким образом, вам не нужно ничего трогать, так как ваша модификация всегда загружается в новые процессы explorer.exe . Детальное описание этого процесса потребовало бы совершенно нового ответа.

А как насчет диалога открытия файла?

Это целый новый набор проблем. Диалоги « Сохранить файл» и «Открыть файл» являются частью библиотеки общих диалогов. Попытки заменить их сложно представить. Примерно то же самое можно сказать о тех, что я сказал о explorer.exe . Но это было бы гораздо страшнее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .