2

カスタム プロトコル ハンドラ (mailto など) を登録しようとすると、URL スキーム文字列の長さに関して、Windows 8 にいくつかの制限があるように見えることがわかりました。

公式の標準では、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