6

Я пытался настроить свой компьютер для открытия FTP и URL-адресов файлов в IE и всего остального, связанного с браузером (http/https/html и т.д.) В Chrome.

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

Из того, что я могу сказать, приложение, которое обрабатывает тип файла ".htm", открывает ВСЕ другие типы и протоколы - независимо от настроек приложения по умолчанию!

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

Может кто-нибудь пролить некоторый свет на это?

Изменить: я думаю, я должен был быть более конкретным. Конечно, я знаю о настройках приложения по умолчанию в панели управления. Это, однако, именно моя точка зрения. Установите приложение по умолчанию для FTP/File/Any URL Protocol, и оно будет переопределено приложением, настроенным для обработки файлов "htm" (не html, а только htm). Это также, как приложение по умолчанию "браузер" устанавливается окнами. Он автоматически устанавливает браузер как приложение htm.

Обновить

Похоже, меня ввел в заблуждение механизм, который я тестировал. Конкретное поле URL/ гиперссылки с кнопкой в Dynamics Axe.

Размещение файла:// или UNC-пути, FTP/ HTTP/ HTTPS ALL открываются с приложением, которое обрабатывает htm (или веб-браузер по умолчанию).

После тестирования с помощью командной строки в соответствии с предложением @ treintje, различные типы файлов и протоколы открываются с правильными приложениями. У меня есть подозрение, что Dynamics Axe использует вызов urlmon.dll или что-то подобное на некотором уровне, чтобы «перехватить» все протоколы и типы файлов, чтобы гарантировать, что веб-браузер по умолчанию обрабатывает ссылку.

3 ответа3

1

Кажется, что следующий раздел реестра управляет связями URL:

HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations

Каждый подраздел UrlAssociations содержит ключ с именем «[protocolname]\UserChoice». Параметр реестра с именем ProgId, кажется, указывает на корневой раздел реестра класса, такой как ftp/http/https/etc.

В моей системе, на которой установлен Google Chrome, значение реестра по умолчанию настроено следующим образом:

[...\UrlAssociations\ftp\UserChoice]
"ProgId"="ChromeHTML"

Чтобы убедиться, что Internet Explorer запущен при выполнении следующей команды:

start "" "ftp://localhost"

Значение реестра ProgId должно быть изменено следующим образом:

[...\UrlAssociations\ftp\UserChoice]
"ProgId"="ftp"

И значение по умолчанию для ключа реестра ftp\shell\open\command:

[HKEY_CLASSES_ROOT\ftp\shell\open\command]
@="\"C:\\Program Files\\Internet Explorer\\\iexplore.exe\" \"%1\""
0

Вы можете изменить ассоциацию протокола в Панели управления> Все элементы панели управления> Программы по умолчанию> Установить ассоциации. Протокол Ассоциации Чтобы найти реестр перейдите по этому пути :: Для FTP--

[HKEY_CLASSES_ROOT\ftp] & [HKEY_CLASSES_ROOT\PROTOCOLS\Handler\ftp]

в этом пути также есть раздел реестра HTTP и HTTPs.

0

Перейдите в « Настройки» > « Приложения» > « Приложения по умолчанию» > прокрутите вниз и нажмите « Выбрать настройки по умолчанию для приложения»

Затем просто найдите нужный браузер слева.

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