2016-04-26 3 views
1

Я не нашел никакой информации об этом. Я уверен, что существует термин для приложений такого типа, но я понятия не имею, где искать. Вот почему я решил спросить здесь.Запуск приложения из браузера

Итак, есть несколько сайтов, где вы наведите курсор мыши на ссылку или кнопку, он говорит что-то вроде application:xyz где application обычно является приложение имя для запуска, и xyz являются параметрами или что-то.

Примером являются все торренты. Если вы наведите курсор на ссылку, там написано:
magnet:?somethingxxxxxxxxxxxx Как я могу привязать собственное приложение к определенному URL-адресу?

Предположим, у меня есть приложение C#, которое я называю Musiclist. Я хочу сделать такие URL как: 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

Но как я могу добавить несколько разных параметров в конце URL-адреса? Как я могу заставить свое приложение действовать в зависимости от этого? Как?: Artist, или?: Songname или что-то еще. Может быть что-то действительно. это некоторый код внутри моего приложения Form_Load как 'if (parameter == 'artist') {// something} else if (параметр == 'song') {// play song}' –

+0

@TibiaPlayer: Это было бы для вашего приложение для синтаксического анализа. Вы можете отделить каждый параметр с помощью '?' И в вашем приложении, разделяемом этим. Например: 'musiclist:? Artist = James? Songname = 123? Group = Something'. –

+0

Знаете ли вы видеоролики из этого материала для C#? Я попытался найти что-то в youtube, но не смог найти что-либо, называемое C# protocol, или C# uri scheme –

Смежные вопросы