#c# #windows
#c# #Windows
Вопрос:
Я хотел бы создать способ перехватывать «специальные ссылки» на мое приложение (например, myapp: //myinfo), как это делают такие приложения, как edonkey.
Первое, что нужно зарегистрировать, как описано, например, здесь, чтобы браузер в конечном итоге вызвал что-то вроде «yourapp.exe ссылка».
Итак, у меня есть два вопроса:
- Есть ли лучший способ создания «пользовательских ссылок», чем описанный выше
- Какой наилучший механизм вы бы использовали, чтобы предотвратить запуск нового экземпляра приложения по каждой ссылке? (Я думаю о каком-то IPC, основанном на чем-то столь же простом, как поиск других экземпляров, и если они есть, отправьте ему команду (используя сокет, или сообщение, или что-то еще)). Какой наиболее распространенный метод?
Спасибо!!
Комментарии:
1. Прочтите эту статью о MSDN , чтобы понять, как зарегистрировать свое приложение по пользовательскому протоколу в Windows.
Ответ №1:
Ссылка, которую вы предоставили при создании пользовательских ссылок, очень приятная…
Второй вопрос… ну, на мой взгляд, вы могли бы создавать два приложения:
- Одно легкое приложение используется только для перенаправления на основное приложение.
- Приложение, которое было бы основным приложением. Основное приложение получает сообщения, отправленные из первого приложения.
Я бы не стал использовать сокеты, если только вы не хотите создать сервер загрузки, который может обрабатывать заказы на загрузку с нескольких компьютеров.
Ответ №2:
Первый вопрос: связанный подход, по сути, правильный. Просто сделайте это программно — не запускайте reg-файл.
Второй вопрос: Ознакомьтесь с этим примером, в котором показано, как обнаружить несколько экземпляров и уведомить первый экземпляр.