自定义协议处理程序在 MS Edge 中不起作用
Custom protocol handler does not work in MS 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\""
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\""
FTA_OpenIsSafe - 0x00010000
FTA_SafeForElevation - 0x00200000
https://msdn.microsoft.com/en-us/library/windows/desktop/bb762506(v=vs.85).aspx
我发现让它在 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\""
我不知道为什么 MS Edge 拒绝直接调用任何可执行文件作为协议处理程序。例如,我尝试了 notepad.exe,但它也没有用。
我们为我们的应用程序注册自定义协议处理程序。
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\""
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\""
FTA_OpenIsSafe - 0x00010000
FTA_SafeForElevation - 0x00200000
https://msdn.microsoft.com/en-us/library/windows/desktop/bb762506(v=vs.85).aspx
我发现让它在 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\""
我不知道为什么 MS Edge 拒绝直接调用任何可执行文件作为协议处理程序。例如,我尝试了 notepad.exe,但它也没有用。