Регистрация программы для Windows с протоколом MailTo программной

голоса
33

Как сделать так , mailto:ссылки будут зарегистрированы с моей программой?

Как бы я тогда справиться с этим событием в моей программе?

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

Edit : Удалена ссылка на Delphi, потому что ответ не зависит от вашего языка.

Задан 01/08/2008 в 23:08
источник пользователем
На других языках...                            


3 ответов

голоса
18

@ Dillie-O: Ваш ответ поставил меня в правильном направлении (я должен был ожидать, что это просто изменение реестра), и я получил эту работу. Но я собираюсь отметить это как ответ, потому что я собираюсь положить некоторую дополнительную информацию, которую я нашел, работая над этим.

Решение этого вопроса не имеет значения, какой язык программирования вы используете, до тех пор, пока есть какой-то способ изменить параметры реестра Windows.

И, наконец, вот ответ:

  • Для того, чтобы связать программу с протоколом MailTo для всех пользователей на компьютере, изменить HKEY_CLASSES_ROOT \ MAILTO \ Shell \ открытое \ команды Значения по умолчанию для:
    « вашей программы исполняемых » «% 1»
  • Для того, чтобы связать программу с протоколом MailTo для текущего пользователя , измените HKEY_CURRENT_USER \ Software \ Classes \ MAILTO \ Shell \ открытое \ команды Значения по умолчанию для:
    « вашей программы исполняемых » «% 1»

% 1 будет заменен весь MailTo URL. Например, если по ссылке:

<a href="mailto:user@example.com">Email me</a>

Будет выполнено следующее:
« исполняемый файл вашей программы » «электронная почта: user@example.com»

Обновление ( с помощью комментариев по shellscape):
По состоянию на Windows 8, этот метод больше не работает , как ожидалось. Win8 навязывает следующий ключ: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati дополнения \ URLAssociations \ MAILTO \ UserChoice , для которых ProgID выбранного приложения хешируется и не могут быть подделаны. Это королевский PITA

Ответил 05/08/2008 в 02:49
источник пользователем

голоса
12

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

Система Key: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Значение имени: (Default)

Тип данных: REG_SZ(String Value)

Значение: Mail program command-line.

Я не знаком с Delphi 7, но я уверен , что есть некоторые библиотеки для редактирования реестра в то , что вы могли бы использовать , чтобы изменить это значение.

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

Ответил 01/08/2008 в 23:12
источник пользователем

голоса
4

Вот официальное решение Microsoft программно изменить почтовый клиент по умолчанию. Это Visual Basic, но я надеюсь, что концепция ясна из этого:

http://support.microsoft.com/kb/299853

Ответил 01/08/2008 в 23:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more