Чтобы узнать, что такое почтовый клиент по умолчанию, я снова и снова находил одну и ту же информацию: посмотрите на строку по умолчанию в HKLM\Software\Clients\Mail
. (см., например, этот связанный вопрос )
Однако, похоже, что это не так для всех ОС и / или ситуаций:
У меня есть две машины под управлением Win7 64bit, назовем их A и B.
A имеет Outlook 2010 64bit и Thunderbird 3 32bit.
В B установлен Outlook 2007 32bit и Thunderbird 3 32bit.
И A, и B имеют Thunderbird в качестве почтового клиента по умолчанию.
Однако состояние реестра не такое, как я ожидал:
На машине A, оба HKLM\Software\Clients\Mail
и HKLM\Software\Wow6432Node\Clients\Mail
имеют пустую строку в качестве значения строки по умолчанию.
На B оба эти ключа содержат Microsoft Outlook
в качестве строкового значения по умолчанию, что явно неверно.
Дальнейшее расследование показало, что правильное значение, похоже, записано в HKCU\Software\Clients\Mail
на обеих машинах.
Я хочу, чтобы мое приложение обрабатывало это правильно во всех случаях. Имеет смысл, что теперь Win7, похоже, содержит отдельный почтовый клиент по умолчанию для каждого пользователя, но это выглядит довольно противоречиво. При взгляде на множество информации, указывающей на HKLM\Software\Clients\Mail
, кажется очевидным, что предыдущие версии Windows обрабатывали это по-разному и всегда писали в это место. Итак, когда это изменилось? Имеет ли неправильное значение на машине B какое-либо значение? Если нет, то почему это там написано? Меняет ли что-нибудь сочетание 64-битных и 32-битных почтовых клиентов на одном компьютере?
Я был бы очень признателен, если бы кто-нибудь поделился достоверной информацией или документацией, объясняющей эту тему! Может быть, есть функция Win32 API, которая возвращает правильное значение?