1

Как изменить браузер по умолчанию в Windows 8.1 на пользовательскую программу или скрипт?

Я хотел бы изменить ассоциацию http-протокола на AutoHotKey-Script (AHK), который открывает правильный браузер на основе URL.

В Windows 7 помогли некоторые изменения в реестре, как описано здесь: Как изменить браузер по умолчанию на незарегистрированную программу в Windows 7?

В Windows 8.1 ключ реестра для файловой ассоциации все еще существует ...

[HKEY_CLASSES_ROOT\http\shell\open\command]
@="\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe\" -osint -url \"%1\""

... но переопределяется этой настройкой "UserChoice"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
"Hash"="...."

Если я удалю запись, упомянутую выше, появится диалоговое окно «Как открыть ссылку такого типа (http)», но в нижнем колонтитуле нет параметра «Дополнительные параметры ...». Так, как я могу указать на мой AHK-Script или любую другую программу, не включенную в список?

Непосредственное редактирование значений в ключе UserChoice не вступает в силу (снова открывается диалоговое окно выбора браузера). Я полагаю, это связано с тем, что "Хеш" защищает эти записи.

Есть ли какой-нибудь способ "редактирования реестра ванили"?

1 ответ1

2

После долгих проб и ошибок я наконец нашел решение, которое работает для меня. Так что любой, кто спотыкается в этом вопросе, возможно, находит это полезным.

Чтобы сделать собственный сценарий доступным в инструменте «Установить доступ к программам и по умолчанию для компьютера» (SPAD), его необходимо зарегистрировать в трех разделах реестра.

  1. HKEY_CLASSES_ROOT
  2. RegisteredApplications
  3. StartMenuInternet

(см. образец ниже для полного пути)

  • В HKEY_CLASSES_ROOT вы должны указать команду для выполнения, я назвал ее yourCustomScriptURL в приведенном ниже примере.
  • RegisteredApplications сообщает Windows, что ваш скрипт существует, и указывает на 3-й раздел реестра.
  • StartMenuInternet, третий и последний раздел, который вы должны добавить, сообщает Windows, что ваш сценарий может обрабатывать протоколы http и https, и указывает на запись HKEY_CLASSES_ROOT.

Microsoft задокументировала необходимые шаги в https://msdn.microsoft.com/en-us/library/windows/desktop/cc144154%28v=vs.85%29.aspx.

И если вы соберете все воедино, это будет выглядеть так.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\yourCustomScriptURL]
@="yourCustomScript"
"FriendlyTypeName"="yourCustomScript"
"URL Protocol"=""

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

[HKEY_CLASSES_ROOT\yourCustomScriptURL\shell\open\command]
@="\"<...path to AHK...>\\AutoHotkey.exe\" \"<...path to script...>\\yourCustomScript.ahk\" \"%1\""

[HKEY_CURRENT_USER\Software\RegisteredApplications]
"yourCustomScript"="Software\\Clients\\StartMenuInternet\\yourCustomScript\\Capabilities"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\yourCustomScript]
@="yourCustomScript"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\yourCustomScript\Capabilities\StartMenu]
"StartMenuInternet"="yourCustomScript"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\yourCustomScript\Capabilities\URLAssociations]
"http"="yourCustomScriptURL"
"https"="yourCustomScriptURL"

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