我们为应用程序注册自定义协议处理程序
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\""