Урегулирование mailto: укладчик протокола программно в Windows 8

Перед Windows 8, методом добавления mailto: укладчик протокола был прямым (как обрисовано в общих чертах здесь Зарегистрируйте Windows-программу в mailto протоколе программно)

С Windows 8 больше не работает старый метод. Казалось бы, что Win8 проводит в жизнь следующий ключ: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations \ MAILTO\UserChoice .

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

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

Для кода любой язык сделает.

Edit

Меня попросили от других обсуждений определить пример использования, таким образом, я думаю, что это было бы полезно в контексте этого вопроса. Пожалуйста, рассмотрите этот снимок экрана https://github.com/shellscape/Gmail-Notifier-Plus/raw/master/Promotional/prefs-account.png и флажок, разрешающий пользователю определить обработку mailto. В этом примере использования никто не вынуждает пользователя, пользователь сознает ситуацию и принимает решение. В то время как окна, у 8 приложений магазина (метро/современный) есть доступный вход декларации приложения, который автоматизирует недостающий процесс, описанный выше, ничто, кажется, с готовностью не существует для настольных приложений.

3
nl ja de
Вы пытались удалить ключ реестра "UserChoice" после урегулирования ключей реестра традиционный путь?
добавлено автор selbie, источник
да. тот единственные причины, "как вы хотите открыть эту связь" муха - в том, когда на ссылку mailto нажимают впоследствии.
добавлено автор shellscape, источник

4 ответы

Можно установить заявление быть активированным таможенным протоколом (как mailto:). Когда пользователь устанавливает ваше приложение, если нет никакого другого приложения, поддерживающего тот протокол, они не побуждены, и вас автоматически назначают на тот протокол.

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

Кроме того, если пользователь нажимает на протокол (как myprotocol:) и у них нет приложения, установленного, который обращается с тем протоколом тогда, их пошлют в магазин (приложение), которое автоматически ищет все приложения та поддержка тот протокол. Пользователь тогда устанавливает то, что они хотят. Вы не можете вынудить пользователя сделать определенный выбор (если любой вообще).

I wrote an article on protocol activation. It might be interesting to you: http://blog.jerrynixon.com/2012/10/walkthrough-using-windows-8-custom.html

5
добавлено
Ой, я видел окна 8 и принятый WinRT. Жаль.
добавлено автор Jerry Nixon - MSFT, источник
That' s польза, прочитанная, и I' m верный it' ll быть полезным Windows 8 современные разработчики / разработчики метро, которые происходят через эту почту. Однако это doesn' t обращаются к настольным приложениям. I' ve обновил OP, чтобы отразить пример использования настольного приложения.
добавлено автор shellscape, источник

Так, я сделал Настольный Firefox моим дефолтом mailto укладчик сегодня в Windows 8, добавив, что последовательность оценивает "mailto" HKCU\Software\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations и устанавливанию значения "mailto", равного ProgID или "FirefoxURL". Я тогда удалил ключи в HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations \ MAILTO\UserChoice, чтобы позволить мне выбирать клиента по умолчанию снова, и на этот раз Firefox был доступен для меня, чтобы выбрать.

Сущность этого вопроса, кажется, что нельзя принять клиента по умолчанию ни для какого протокола больше (отправьте Windows 8). Пользователь должен выбрать. Однако, если бы вы хотели нарушить соглашение OS, то вы могли бы зацепить требование создать выбрать диалог по умолчанию, который возьмет исследование, усилие, и будет только временным клуджем и потребовал бы "ломки" OS, или вы могли послать двойной щелчок в диалог, чтобы выбрать для пользователя, предположив, что ваша программа подняла права так, чтобы это могло послать щелчки в окна Администратора. Это, вероятно, было бы самым легким путем, пользователь никогда не будет знать то, что произошло, просто быстрая вспышка. Действительно, хотя, после регистрации себя как укладчик протокола, я не думаю, что любая программа должна пойти вне удаления ключа реестра укладчика протокола по умолчанию, таким образом вынудив пользователя повторно выбрать.

1
добавлено

Это - то, как установить mailto протокол вручную и просто в Windows 8, 8.1, 2012, 2012R2

Add a new registry branch HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice

Тогда щелкните по любому mailto: связь в вашем веб-браузере, говорит IE и наконец там в списке программ для вас, чтобы выбрать, который не был доступен прежде.

Также MAILTO появляется в Контроле Панель управления Panel\All Программы Items\Default теперь. Нет никакого другого выбора добавить/удалить протокол оттуда.

0
добавлено

You can't have your app directly take over file associations anymore in Windows 8. There are guidelines for how to handle this for both Windows Store and desktop applications here: http://msdn.microsoft.com/en-us/library/windows/apps/hh700321.aspx

0
добавлено
Цитирование той статьи: "мы рекомендуем, чтобы вы связались, чтобы Установить Программы По умолчанию в Панели управления". Это было бы полезной ссылкой для настольных приложений, если бы страница потрудилась обращаться точно, как каждый идет о "соединении с" тем апплетом панели управления. Даже все еще, как с каждой версией предшествующего Windows, там должен существовать работа. В целях вопроса, который задают, этот doesn' t характеризуются как ответ, но полезная информация.
добавлено автор shellscape, источник
Дополнительная информация, отсутствующая в той ссылке: точно, как зарегистрировать ваше настольное приложение так, чтобы диалоги панели управления, на которые ссылаются, признали ваше настольное приложение.
добавлено автор shellscape, источник
Спасибо Пит. Беря, что один далее, here' s обертка C# вокруг того API davesbox.com/archive/2008/12/03/…
добавлено автор shellscape, источник
Для получения информации о том, как показать UI, чтобы позволить пользователю устанавливать дефолты, видеть это: msdn.microsoft.com/en-us/library/windows/desktop/…
добавлено автор Pete, источник
Про Windows
Про Windows
941 участник(ов)

Microsoft Windows и всё, что с этим связано. Список интересных групп и каналов: https://github.com/goq/telegram-list

Microsoft Developer Community Chat
Microsoft Developer Community Chat
584 участник(ов)

Чат для разработчиков и системных администраторов Microsoft Developer Community. __________ Новостной канал: @msdevru __________ Баним за: оскорбления, мат, рекламу, флуд, флейм, спам, NSFW контент, а также большое количество оффтоп тем. @banofbot