如何在 Windows 8.1 中将默认浏览器更改为自定义程序/脚本(http 关联)?

如何在 Windows 8.1 中将默认浏览器更改为自定义程序/脚本(http 关联)?

如何将 Windows 8.1 中的默认浏览器更改为自定义程序或脚本?

我想将 http 协议的关联更改为 AutoHotKey 脚本 (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-Key 中的值不会生效(选择浏览器的对话框再次打开)。我想这是因为“哈希”保护了这些条目。

是否有任何“原始注册表编辑”方法?

答案1

经过多次尝试和错误,我终于找到了适合自己的解决方案。因此,任何遇到此问题的人都可能会发现这很有用。

为了使您自己的脚本在设置程序访问和计算机默认值 (SPAD) 工具中可用,必须在注册表的三个部分中注册它。

  1. 键值对
  2. 注册申请
  3. 开始菜单互联网

(完整路径见下方示例)

  • 键值对你必须指定要执行的命令,我称之为你的自定义脚本URL在下面的示例中。
  • 注册申请告诉 Windows 您的脚本存在并指向第 3 个注册表部分。
  • 开始菜单互联网,您必须添加的第 3 部分也是最后一部分,告诉 Windows 您的脚本可以处理 http 和 https 协议并指向 HKEY_CLASSES_ROOT 条目。

微软记录了必要的步骤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"

相关内容