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

前端之家收集整理的这篇文章主要介绍了windows-10 – 自定义协议处理程序在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中工作的唯一方法是将open命令指向一个中间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相关文章