Как я могу добавить собственный обработчик URL-адресов в Windows. Как iTunes itms://

Я бы хотел, чтобы telnet://blah открывал замазку, а не собственный клиент telnet для Windows.

Я даже не знаю, как называется эта «функция» под Windows, поэтому мне не повезло найти какую-либо информацию об этом.

Заранее спасибо, Ян


person Jan Bannister    schedule 28.04.2009    source источник
comment
См. здесь. для примера.   -  person Preet Sangha    schedule 28.08.2013


Ответы (4)


Если несложно, то можно сделать через командную строку:

ftype telnet # view current binding
ftype telnet=\path\to\putty.exe %1

В противном случае вам нужно будет использовать реестр, как было опубликовано ранее.

person Richard Szalay    schedule 28.04.2009
comment
Спасибо за это, Ричард, ftype выглядит как раз то, что нужно. Однако, когда я создаю привязку, например: ftype ssh=c:\putty %1 Когда я пытаюсь запустить «ssh:», я получаю «Отказано в доступе»… - person Jan Bannister; 28.04.2009
comment
Я обнаружил, что в Vista я получаю сообщение «Файл не найден» в зависимости от прав администратора пользователя и включения или выключения UAC. http: и mailto: как протоколы не имеют этой проблемы - person Goran Peroš; 05.05.2009
comment
К сожалению, только ftype в командной строке даст отказ в доступе. Вам также необходимо добавить пустой ключ протокола URL, указанный в примере реестра. Связанная статья MSDN охватывает это. - person studgeek; 22.04.2011

Это ключи реестра, которые предоставляют настраиваемые обработчики URI.

Вот статья об этом в MSDN, чтобы процитировать некоторые из них:

HKEY_CLASSES_ROOT
     alert
          (Default) = "URL:Alert Protocol"
          URL Protocol = ""
          DefaultIcon
               (Default) = "alert.exe"
          shell
               open
                    command
                         (Default) = "C:\Program Files\Alert\alert.exe" "%1"

Что бы вы позволили сделать

оповещение: какое-то сообщение

И ваше приложение, очевидно, получит «какое-то сообщение» в качестве аргумента.

person Chris S    schedule 28.04.2009
comment
Это прекрасно работает, но протокол также передается. Итак, в вашем примере приложение отправляет предупреждение: какое-то сообщение. Любые советы / мысли о том, как отключить предупреждение: до того, как приложение его получит? Я пробовал подстановку строк, например %1:alert:=%, но, похоже, это не работает. - person studgeek; 22.04.2011
comment
в этой статье о стеке по потоку есть ответ . - person Air2; 03.06.2014

Чтобы изменить обработчик протокола telnet: (или любой другой существующий обработчик) в XP (может работать для Vista — я не смотрел), выберите Панель управления > Параметры папки > Типы файлов (вкладка). Прокрутите вниз (не так много, это вверху), чтобы найти (НЕТ) URL:Протокол Telnet, и нажмите кнопку «Дополнительно». С этого момента это похоже на изменение ассоциации типа файла. Обратите внимание, что целевое приложение должно поддерживать передачу предоставленного URL-адреса в качестве параметра.

К сожалению, кнопка «Создать», по-видимому, не позволяет создавать новые типы «URL», поскольку для этого требуется ввод расширения. Чтобы создать новую, мне ранее приходилось копировать существующую запись из реестра (то есть: найти, экспортировать, отредактировать в текстовом редакторе и повторно импортировать).

person Jason Musgrove    schedule 28.04.2009

Вы можете использовать следующий скрипт: https://gist.github.com/sbiffi/11256316

Он связывает URL-адреса telnet:// и ssh:// со сценарием, который анализирует параметры в URL-адресе и запускает шпатлевку.

Не нужно менять шпатлевку. Также поддерживается передача логина (и пароля для ssh).

person user3568910    schedule 27.04.2014