Главный вопрос: безопасно ли это?

Главный вопрос: безопасно ли это?

Есть ли способ установить другую программу в качестве программы по умолчанию, которая открывается при открытии папки или "Моего компьютера"? Я хотел бы заменить проводник Windows другой программой, например FreeCommander. Я пробовал просматривать параметры панели управления для сопоставления программ, но не смог найти параметр для открытия папок.

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

решение1

В целом вопрос PHOENiX правильный, но есть одна проблема. Ключ реестра HKEY_CLASSES_ROOT\Folderохватывает не только каталоги, но и различные специальные папки, например, элементы вПанель управленияи т. д. Это те строки GUID, о которых пишет PHOENiX. Если вы попытаетесь открыть такую ​​специальную папку в стороннем файловом менеджере, то, скорее всего, это не удастся, и вы больше не сможете использовать эти папки.

На самом деле вам нужно просто настроитькаталогиидискидля открытия в вашем файловом менеджере. Для этого есть два ключа реестра:

  • HKEY_CLASSES_ROOT\Directory
  • HKEY_CLASSES_ROOT\Drive

Вот два примера того, как установить Total Commander в качестве файлового менеджера по умолчанию. Оба варианта открывают любой каталог или диск в новой вкладке Total Commander при щелчке (например, в меню «Пуск»), двойном щелчке (например, на рабочем столе, в проводнике Windows и т. д.), открытии из другого приложения и т. д. Единственное отличие в том, что первый вариант используетОткрытьпункт в контекстном меню каталога/диска, а второй — добавление нового элементаОткрыть в Total Commanderс помощью значка Total Commander в контекстном меню.

Просто скопируйте и вставьте содержимое ниже в новый файл, дайте ему расширение .regи запустите его. Конечно, вам нужно убедиться, что у вас правильный путь к исполняемому файлу Total Commander.

ПроверитьдокументацияБольше подробностей.

1. Использовать значение по умолчаниюОткрытьэлемент

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="open"

[HKEY_CLASSES_ROOT\Drive\shell\open\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"

[HKEY_CLASSES_ROOT\Directory\shell]
@="open"

[HKEY_CLASSES_ROOT\Directory\shell\open\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

2. Добавить новый пункт контекстного менюОткрыть в Total Commander

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Drive\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander]
@="Open in Total Commander"

[HKEY_CLASSES_ROOT\Drive\shell\TotalCommander\command]
@="\"C:\\Program Files\\totalcmd\\TOTALCMD64.EXE\" \"%1\" /T /O /S"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell]
@="TotalCommander"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander]
@="Open in Total Commander"
"Icon"="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE,0"

[HKEY_CLASSES_ROOT\Directory\shell\TotalCommander\command]
@="C:\\Program Files\\totalcmd\\TOTALCMD64.EXE \"%1\" /T /O /S"

Параметры командной строки Total Commander

В приведенных выше примерах используются 4 параметра командной строки:

  • "%1": путь к открытому каталогу/диску, должен быть заключен в кавычки для корректной обработки путей с пробелами
  • /O: использовать существующий экземпляр Total Commander вместо запуска нового
  • /T: открыть новую вкладку вместо повторного использования активной вкладки
  • /S: открытый каталог/диск будет рассматриваться как источник, поэтому он будет открыт на панели, где находится текущая активная вкладка

Проверитьдокументациядля получения дополнительных параметров.

решение2

Сравнивая реестр до и после настройки Q-Dir в качестве файлового менеджера с его опцией в меню «Дополнительно», вот что он на самом деле делает (поскольку программное обеспечение, похоже, не имеет открытого исходного кода):

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell
Change: Added Value
Value: *Q-Dir
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir
Change: Added Value (Icon)
Value: C:\Program Files\Q-Dir\Q-Dir.exe
Type: REG_SZ

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Key

Key: HKEY_LOCAL_MACHINE\Software\Classes\Folder\shell\*Q-Dir\command
Change: Added Value
Value: "C:\Program Files\Q-Dir\Q-Dir.exe" /e>%L>%D>%1>%S>
Type: REG_SZ

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

Первое изменение реестра устанавливает в качестве оболочки по умолчанию вновь созданную *Q-Dirкоманду оболочки.

Значение последнего изменения реестра имеет следующее значение:

"C:\Program Files\Q-Dir\Q-Dir.exe"-- Запустить Q-Dir.exe
/e>%L>%D>%1>%S>-- с этими аргументами

>%L>%D>%1>%S>— это переменные командной строки, которые более подробно описаны здесь:Какие специальные переменные доступны при написании команды оболочки для контекстного меню

Однако >между ними и /eявляется специфичным для Q-Dir. Q-Dir специально реализовал /eпереключатель, который принимает значения, чтобы его можно было разделить >и использовать по мере необходимости в цепочке приоритетов.


Главный вопрос: безопасно ли это?

Мы не знаем наверняка, но делайте это с осторожностью. Я уже заметил, что программа замены оболочки может получить аргумент, который можно было бы принять за путь к файлу, когда на самом деле это оказывается странной строкой GUID, например, в формате ::{123E4567-E89B-12D3-A456-426614174000}\8\::{123E4567-E89B-12D3-A456-426614174000}. Это, например, происходит, если вы щелкаете правой кнопкой мыши -> удалить приложение в меню «Пуск», что обычно передается в проводник (оболочка по умолчанию) и обрабатывается оттуда.

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

решение3

Не уверен насчет FreeCommander, ноQ-Dirесть возможность установить этот файловый менеджер как файловый менеджер по умолчанию:

введите описание изображения здесь

Однако эта настройка имеет некоторые ограничения, если запустить ее как портативное приложение. Например, Win Eзапускает проводник Windows, хотя есть пункт контекстного меню для открытия папки с помощью Q-Dir.

решение4

В качестве награды Эрель Сегал-Халеви запросил файловый менеджер с вкладками.

Существует множество альтернативных файловых менеджеров, в основном бесплатных, и некоторые из них поддерживают вкладки. Список таких продуктов с обзорами можно найти в статье Лучший бесплатный файловый менеджер. Из этого списка Эрель выбрал QTTabBar, который расширяет возможности проводника Windows за счет вкладок и дополнительных представлений папок.

Существуют даже продукты, которые могут добавлять вкладки в любой продукт в Windows, включая Проводник Windows: TidyTabs и TaskSpace.

Связанный контент