Как мне создать «пользовательский протокол» и сопоставить его с приложением? - PullRequest
7 голосов
/ 19 октября 2010

Как можно было бы создать «собственный протокол»? Я знаю, что вы можете создать протокол URL, добавив несколько записей реестра в HKEY_CLASSES_ROOT, но, похоже, это работает только в браузере. Мне нужно, чтобы он работал и в Windows Explorer.

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

Короче говоря ...

  • Стороннее приложение должно позвонить: tbwx:<row_id>
  • Мое приложение должно загрузить и удалить запись из базы данных.

Звучит довольно просто (или я так думал). Есть идеи?

Спасибо

Ответы [ 2 ]

10 голосов
/ 19 октября 2010

По крайней мере в Windows 7 вы можете создать собственный протокол, если добавите значение URL Protocol типа REG_SZ к ключу. Это не требует фактического значения, просто должно присутствовать. Вот простой пример «протокола эха», который я только что создал, который работает в проводнике.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\echo]
"URL Protocol"=""
@="Echo Protocol"

[HKEY_CLASSES_ROOT\echo\shell]

[HKEY_CLASSES_ROOT\echo\shell\open]

[HKEY_CLASSES_ROOT\echo\shell\open\command]
@="C:\\WINDOWS\\SYSTEM32\\CMD.EXE /Q /C (echo %1) && pause"

Я обнаружил, что он также будет работать с ключами HKCU\Software\Classes и HKLM\Software\Classes. Однако он не указан в списке Control Panel\Programs\Default Programs\Set Associations. Возможно, потребуется обновить другие ключи или как-то зарегистрировать их в Windows.

Я полагаю, что в более старых версиях Windows XP и выше оно совпадает или похоже.

4 голосов
/ 19 октября 2010

В статье Регистрация приложения по протоколу URL подробно описывается процесс. uilitiy на CodePlex , который можно использовать для регистрации пользовательских протоколов URL. Исходный код предоставлен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...