从浏览器

时间:2016-04-26 19:10:51

标签: c# url browser web-applications launch

我找不到任何关于此的信息。我确信这类应用程序有一个术语,但我不知道在哪里看。这就是我决定在这里问的原因。

因此,有一些网站将鼠标悬停在某个链接或按钮上,表示 application:xyz ,其中 application 通常是名称要运行的应用程序, xyz 是参数或其他内容。

一个例子是所有的torrent链接。如果你将鼠标悬停在某个链接上,则说明了 magnet:?somethingxxxxxxxxxxxx 如何将自己的自定义应用程序绑定到某个网址?

假设我有一个C#应用程序,我称之为 Musiclist 。我想制作以下网址: musiclist:?song=hey123

当我在浏览器中点击它时,它会打开应用程序。

我真的找不到任何关于这个的例子,或者我是如何通过链接中的 :? 传递这些变量的,所以这就是我无法提供任何代码示例的原因。

1 个答案:

答案 0 :(得分:2)

这就是所谓的a protocol or a URI Scheme

这是在注册表中定义的,因此您必须在那里添加正确的值:

HKEY_CLASSES_ROOT
    <protocol>
        (Default) = "URL:<protocol name>"
        URL Protocol = ""
        DefaultIcon
            (Default) = "<path to your application>,<icon index>"
        shell
            open
                command
                    (Default) = "<path to your application>" "%1"

在你的情况下,这可能是:

HKEY_CLASSES_ROOT
    musiclist
        (Default) = "URL:Music list protocol"
        URL Protocol = ""
        DefaultIcon
            (Default) = "C:\Program Files\Musiclist\musiclist.exe,0"
        shell
            open
                command
                    (Default) = "C:\Program Files\Musiclist\musiclist.exe" "%1"

冒号后面的所有内容(:)将作为(a)命令行参数传递给您的应用程序。