2

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

官方标准规定 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)

在职的:

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 方案 (因为我希望我的应用程序列在 Windows 8 现代 UI“打开方式”对话框中)。

即这样的东西(缩短):

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

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

谁能解释一下我的情况有什么问题,或者这真的是系统的限制吗?

4

0 回答 0