как я могу запустить/передать значение в приложение Windows С# с веб-страницы? (можно со ссылками на песни в iTunes)?

Я собираю приложение winforms на С#, и было бы хорошо иметь возможность для кого-то щелкнуть ссылку на веб-страницу, которая автоматически максимизирует мое приложение на С# и передает ему некоторые данные. Почти так же, как я вижу, что на некоторых веб-страницах есть ссылка на песню, которая автоматически открывает iTunes, а затем в iTunes он ищет детали песни, которые вы передали.

Q1 - Как это сделать в HTML/Javascript?

Q2. Этот подход работает только в определенных браузерах?

Q3. Будет ли это работать только в Windows? (Мне просто нужно это для Windows)

Спасибо


person Greg    schedule 29.12.2009    source источник


Ответы (3)


Вы можете зарегистрировать обработчик протокола URL (см.), который позволяет вам указать уникальный протокол URL-адресов, и вы можете создавать интерактивные ссылки на веб-страницах, которые будут порождать новое приложение, передающее полный URL-адрес. Однако будьте осторожны, потому что этот механизм несколько раз неправильно реализовывался, что может подвергнуть вас эксплуатации.

Кроме того, браузеры обычно предупреждают вас, если вы пытаетесь использовать один из этих странных URL-адресов. И это будет работать только на Windows (но есть альтернативы и на других ОС).

person tyranid    schedule 29.12.2009
comment
спасибо - так что, я думаю, идея в том, что вы создаете свою установку C # winforms, чтобы выполнить это как часть установки? (т.е. регистрация обработчика протокола) - person Greg; 30.12.2009
comment
будет ли этот подход работать только тогда, когда приложение winforms еще не открыто? То есть, что делать, если он уже открыт? - person Greg; 30.12.2009
comment
Вам нужно будет реализовать некоторую форму поддержки приложения с одним экземпляром, поэтому запуск нового экземпляра фактически приведет к активации оригинала. В сети есть много примеров, и об этом часто спрашивали на SO. - person tyranid; 30.12.2009

Вам нужно будет связать новый тип файла с вашим приложением C#. Веб-страница может «запустить» такой файл, загрузив его.

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


Это правда, что будет подсказка «запустить или сохранить», но помимо этого, я думаю, что это будет самый простой метод, и тот, который будет проще всего поддерживать.

person John Saunders    schedule 29.12.2009

Моей первой реакцией было бы то, что вам нужно сначала создать какой-то плагин для браузера, который будет действовать как посредник между вашим javascript и вашим приложением C #. Это связано с тем, что javascript веб-сайта и другой код запускаются в контексте с ограниченной безопасностью и не могут получить доступ к привилегированным ресурсам, таким как другие приложения, именованные каналы, порты tcp и т. д.

person Aviad P.    schedule 29.12.2009
comment
ты видел ответ тиранида? это звучит потенциально проще? - person Greg; 30.12.2009
comment
Да, и более общий, т.е. независимый от браузера. - person Aviad P.; 30.12.2009