На сетевом диске лежит приложение abc.exe. Как написать протокол, чтобы такая команда abc:\\param запускала это приложение с параметром param? Как пишется протокол? Все ли пользователи, имеющие доступ к шаре смогут использовать такой протокол или требуется на каждой машине требуется выполнить еще что-то?
Ответ
Протокол прописывается в реестре Windows.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\yourprotocolname]
@="URL:Direct Connect Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\yourprotocolname\Shell\Open\Command]
@="cmd /c echo %1 & pause"
Обращаю внимание, что в браузере можно создавать ссылки на такой протокол. И таким ссылкам можно настроить автоматическое выполнение без запроса.
Поэтому очень важно отнестись к обработке передаваемых параметров внимательно.
Например, определённый выше протокол с именем yourprotocolname представляет собой огромную дыру в безопасности, поскольку можно сделать что-то типа yourprotocolname:text & format d:
PS: Знаю, что в linux'е тоже возможно создавать кастомные протоколы, но не имею ни малейшего представления, как это делать.
Комментариев нет:
Отправить комментарий