2016-04-26 151 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計劃 –

相關問題