Отслеживание сообщений пользовательского протокола Url - Delphi - PullRequest
0 голосов
/ 10 апреля 2011

Как вы знаете, custom url protocol - это функция, которая позволяет нам устанавливать связь между веб-страницей и нашим приложением.Например, Y!Messenger использует этот протокол, когда вы хотите отправить сообщение другому человеку через веб-страницу:

 <a href="ymsgr:sendim?YahooID">Click to send pm</a>

Теперь возникает вопрос, как я могу отслеживать (перехватывать) все сообщения custom url protocol в окнах?Можно ли их поймать?

Ответы [ 3 ]

6 голосов
/ 11 апреля 2011

Перебирайте содержимое реестра, ища зарегистрированные пользовательские протоколы. Это будут дочерние элементы ключа HKey_Classes_Root со значением URL Protocol . Каждый раз, когда вы найдете его, запишите значение по умолчанию клавиши shell \ open \ command , а затем замените его командной строкой, указывающей на вашу программу.

Когда ваша программа вызывается, делайте все, что вам нужно, а затем вызывайте исходную программу, используя командную строку, которую вы записали ранее.

1 голос
/ 11 апреля 2011

Вы можете зарегистрировать собственный протокол: Можно ли использовать Delphi для создания и обработки собственного обработчика протокола? Просто добавьте несколько ключей в реестр пользователя (имя протокола и приложение для запуска). Это похоже на расширение файла реестра. Простой пример: здесь .

Я не уверен, что вы можете поймать каждый запрос. Это могут делать антивирусные программы, но на уровне драйвера.

0 голосов
/ 11 апреля 2011

Возможно, вы захотите взглянуть на Fiddler HTTP Web Debugger , который перехватывает весь HTTP-трафик, будучи временным прокси.

Он не написан на Delphi, но должен дать вамхорошая идея о том, как подойти к вашей проблеме.

...