自定义协议处理程序在MS Edge中不起作用

Vol*_*lyy 5 protocol-handler windows-10 microsoft-edge

我们为应用程序注册自定义协议处理程序。

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp]
@="URL: TestApp Protocol"
"URL Protocol"=""
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell\open\command]
@="\"wscript\" \"C:\\Users\\user1\\AppData\\Local\\Programs\\TestService\\CustomTestProtocolHandler.vbs\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

Chrome和Explorer均可启动此自定义协议处理程序。
但是从MS Edge无法正常工作。
我是否应该执行一些其他配置以在Edge中启用自定义协议?
还是自定义协议处理程序根本无法从MS Edge工作?

更新:
如果我使用“ EditFlags” = dword:00210000值,它对我有用:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp]
@="URL: TestApp Protocol"
"EditFlags"=dword:00210000
"URL Protocol"=""
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell\open]
[HKEY_CURRENT_USER\SOFTWARE\Classes\testapp\shell\open\command]
@="\"wscript\" \"C:\\Users\\user1\\AppData\\Local\\Programs\\TestService\\CustomTestProtocolHandler.vbs\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

FTA_OpenIsSafe-0x00010000
FTA_SafeForElevation-0x00200000
https://msdn.microsoft.com/zh-cn/library/windows/desktop/bb762506(v=vs.85).aspx

Vin*_*ius 2

我发现让它在 MS Edge 中工作的唯一方法是将打开命令指向中间 bat 文件。我的注册表项如下所示:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\magnet]
@="URL:Magnet Protocol"
"URL Protocol"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\magnet\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\magnet\shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\magnet\shell\open\command]
@="\"D:\\Program Files\\PowerShell Scripts\\HandleMagnetTransmission.bat\" \"%1\""
Run Code Online (Sandbox Code Playgroud)

我不知道为什么 MS Edge 拒绝直接调用任何可执行文件作为协议处理程序。例如,我尝试了 notepad.exe,但它也不起作用。

  • “EditFlags”=dword:00210000 (3认同)
  • 如果我添加“EditFlags”=dword:00200000 值,它在 MS Edge 中适用于我。请参阅更新。 (2认同)