2015-01-12 4 views
0

Я искал Google для открытого URL-поиска в течение длительного времени, но Google просто дает мне неуместные результаты ...Как захватить открытое URL-сообщение?

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

Например, когда кто-то отправляет вам ссылку через Skype, вы щелкаете по ссылке, и Skype предложит вам IE/Chrome или другие браузеры по умолчанию. Я хотел бы знать, как захватить событие, которое открывает браузер. Я не хочу устанавливать свое приложение в качестве браузера по умолчанию.

У VB.net может быть ограниченная функция, если нет способа достичь этого, это нормально, чтобы дать мне способ, как это сделать на C# или C++.

Я абсолютно не знаю, как это сделать. Надеюсь, что кто-то может дать мне подсказку :(


Добавить на:. Может быть, мой вопрос не ясно, что мне нужно сделать, это не открытие URL Я хотел бы сделать заявление, чтобы открыть. URL-адрес через мое приложение. Например, когда я нажимаю ссылку в Skype, я хочу, чтобы мое приложение захватило ссылку, которую пытался открыть Skype, вместо того, чтобы вытащить меня в браузер.

+0

Если Google дает неуместные результаты, это вопрос неуместный. Нет «Открытого URL-адреса». URL-адреса - это просто данные. Каждое приложение решает, как отображать и обрабатывать текстовые значения, которые он хочет рассматривать как URL-адреса. Большинство будет делать «Process.Start» с URL-адресом. Те, кто хочет предложить выбор, просто запустите выбранный браузер exe с помощью соответствующих переключателей командной строки, чтобы открыть URL-адрес. –

+0

Ну, я не пытаюсь открыть URL-адрес. Я пытаюсь захватить событие, которое внешнее приложение (например, Skype) открывает URL-адрес. Я чувствую, что мой вопрос неуместен, но я не совсем уверен, как правильно это описать ... –

+0

Нет такого события. Это всего лишь вызов «Process.Start», для которого Windows Shell знает, что ему нужно открыть веб-браузер –

ответ

3

Из комментариев кажется реальный вопрос: «Как я могу использовать приложение для обработки URL-адресов вместо зарегистрированного приложения»?

Вы можете сделать это, зарегистрировав свой собственный protocol handler. Windows обрабатывает URI через обработчики протоколов, зарегистрированные в ... Registry. Каждый раз, когда URL-адрес вводится в поле Run или начинается с Process.Start, ОС проверяет реестр, чтобы найти программу, зарегистрированную для протокола URI. OS будет просто запустить зарегистрированный процесс, проходящий в URL в качестве параметра

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

  • You необходимо сохранить старые значения и вернуться к ним при удалении приложения.
  • Установка нового браузера или изменение браузера по умолчанию также повлияет на обработчики. Это сломает ваш обработчик. Возможно, вам придется периодически проверять изменения.
  • Пользователи не будут очень рады, если вы убьете все их URL-адреса, занесите задержки в просмотре и отобразите свой пользовательский интерфейс. Ваша программа должна быть очень легкой и перенаправлять URL-адрес предыдущему обработчику (то есть браузеру), если вы не хотите обрабатывать его самостоятельно.

Конечно, если причина вы хотите, чтобы перехватить URL вызовов, чтобы обеспечить свой собственный префикс (как git:), вам не придется беспокоиться о каких-либо об этом.

+0

Кажется, что я хочу сделать сейчас! Я думаю, что должно быть возможно не повлиять на конечного пользователя, если я добавлю обработчик, чтобы открыть URL-адрес, указывающий на конкретный сайт? –

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