Windows 8协议处理程序限制

时间:2015-04-27 07:54:34

标签: windows windows-8 registry url-scheme protocol-handler

当尝试注册自定义协议处理程序(如mailto等)时,我发现Windows 8上似乎存在一些与URL方案字符串长度有关的限制。

official standard表示URL方案必须如下所示:

scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )

但在Windows 8上,我发现以下情况如下:

不工作:

a.a.a.a.a.a.a.a.a.a.a.a.a (25 chars, 13 letters)
aaaaaaaaaaaaaa (14 chars, 14 letters)
aaaaaaaaaaaaa (13 chars, 13 letters)

WORKING:

a.a.a.a.a.a.a.a.a.a.a.a (23 chars, 12 letters)
aaaaaa.aaaaaa (13 chars, 12 letters)
aaaaaaaaaaaa (12 chars, 12 letters)

我的假设经过一番尝试后,URL方案长度不得超过12个字符(不包括点数)(我没有尝试“+”和“ - ”)。

我正在注册URL方案,如this answer中所述 (因为我希望我的应用程序在Windows 8现代用户界面中列出“打开方式”对话框)。

即。像这样(缩短):

HKEY_CURRENT_USER\Software\Classes\myapp.ProtocolHandler
    (Default) = "urlscheme"
    Shell\Open\command
        (Default) = C:\path\to\my\app.exe %1

HKCU\SOFTWARE\mypublisher\myapp\Capabilities\URLAssociations
    urlscheme = myapp.ProtocolHandler

HKCU\SOFTWARE\RegisteredApplications
    mypublisher_myapp = Software\mypublisher\myapp\Capabilities

我找不到有关此限制的任何官方信息。

在我的情况下,有人可以解释我的错误,或者这是否是系统的限制?

0 个答案:

没有答案