运行 来自浏览器的应用程序

Run application from browser

我找不到关于此的任何信息。我确信有一个术语可以描述这种类型的应用程序,但我不知道去哪里找。这就是为什么我决定在这里问。

所以有一些网站,您将鼠标悬停在 link 或按钮上,它会显示类似 application:xyz 的内容,其中 application一般是名字应用到运行,xyz是参数什么的。

一个例子是所有的种子link。如果您将鼠标悬停在 link 上,它会显示
magnet:?somethingxxxxxxxxxxxx 如何将自己的自定义应用程序绑定到某个 URL?

假设我有一个名为 Musiclist 的 C# 应用程序。我想让 URL 像:musiclist:?song=hey123

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

我真的无法通过一些示例找到任何相关信息,或者我如何通过 link 中的 :? 传递这些变量,所以这就是为什么我无法提供任何代码示例。

这就是所谓的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) 命令行参数传递给您的应用程序。