2016-04-26 203 views
1

我找不到任何有关此信息。我确信这种类型的应用程序有一个术语,但我不知道在哪里寻找。这就是我决定在这里问的原因。从浏览器运行应用程序

因此,有在那里你将鼠标悬停在链接或按钮几个网站,它说像application:xyz其中application通常是名的应用程序运行,并且xyz是参数什么的。

一个例子是所有的洪流链接。如果你将鼠标悬停在链接上,它说
magnet:?somethingxxxxxxxxxxxx如何将我自己的自定义应用程序绑定到某个URL?

比方说,我有一个C#应用程序,我打电话Musiclist。我想使网址如下所示:musiclist:?song=hey123

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

我实在找不到这事,有一些例子,或如何传递这些变量与链接中的:?,所以这就是为什么我不能提供任何代码示例。

回答

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

+0

但是我怎么能在网址的最后添加多个不同的参数?我如何根据这些情况让我的申请行为有所不同?像?:艺术家,或?:歌曲名或别的东西。可能是真的。它是我的应用程序Form_Load中的一些代码,如'if(parameter =='artist'){// something} else if(parameter =='song'){// play song}' –

+0

@TibiaPlayer:这将是你的应用程序解析。你可以用'?'分隔每个参数,然后在你的应用程序中进行分割。例如:'musiclist:?artist = James?songname = 123?group = Something'。 –

+0

你知道任何关于c#的东西的视频吗?我试图找到一些在YouTube上,但无法找到任何称为C#协议,或c#uri计划 –

相关问题