Создание пользовательских ссылок на приложения (в стиле ссылок ed2k) в C#

#c# #windows

#c# #Windows

Вопрос:

Я хотел бы создать способ перехватывать «специальные ссылки» на мое приложение (например, myapp: //myinfo), как это делают такие приложения, как edonkey.

Первое, что нужно зарегистрировать, как описано, например, здесь, чтобы браузер в конечном итоге вызвал что-то вроде «yourapp.exe ссылка».

Итак, у меня есть два вопроса:

  • Есть ли лучший способ создания «пользовательских ссылок», чем описанный выше
  • Какой наилучший механизм вы бы использовали, чтобы предотвратить запуск нового экземпляра приложения по каждой ссылке? (Я думаю о каком-то IPC, основанном на чем-то столь же простом, как поиск других экземпляров, и если они есть, отправьте ему команду (используя сокет, или сообщение, или что-то еще)). Какой наиболее распространенный метод?

Спасибо!!

Комментарии:

1. Прочтите эту статью о MSDN , чтобы понять, как зарегистрировать свое приложение по пользовательскому протоколу в Windows.

Ответ №1:

Ссылка, которую вы предоставили при создании пользовательских ссылок, очень приятная…

Второй вопрос… ну, на мой взгляд, вы могли бы создавать два приложения:

  • Одно легкое приложение используется только для перенаправления на основное приложение.
  • Приложение, которое было бы основным приложением. Основное приложение получает сообщения, отправленные из первого приложения.

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

Ответ №2:

Первый вопрос: связанный подход, по сути, правильный. Просто сделайте это программно — не запускайте reg-файл.

Второй вопрос: Ознакомьтесь с этим примером, в котором показано, как обнаружить несколько экземпляров и уведомить первый экземпляр.