Как и где именно в реестре устанавливается почтовый клиент по умолчанию?

Чтобы узнать, что такое почтовый клиент по умолчанию, я снова и снова находил одну и ту же информацию: посмотрите на строку по умолчанию в HKLM \ Software \ Clients \ Mail . (См., Например, этот вопрос )

Однако, похоже, это не верно для всех ОС и / или ситуаций: У меня есть две машины под управлением Win7 64bit, назовем их A и B. A имеет установленный 64-разрядный Outlook 2010 и 32-разрядный Thunderbird 3. На B установлены 32-разрядные версии Outlook 2007 и 32-разрядные версии Thunderbird 3. Both A and B have Thunderbird set as their default mail client.

However, the state of the registry is not as I expected it:

On machine A, both HKLM\Software\Clients\Mail and HKLM\Software\Wow6432Node\Clients\Mail have an empty string as the default string value. On B, both those keys contain Microsoft Outlook as the default string value, which is clearly wrong. Further investigation revealed that the correct value seems to be written to HKCU\Software\Clients\Mail on both machines.

I want my application to handle this correctly for all cases. It makes kinda sense, that Win7 now seems to hold a separate default mail client for each user, but it appears rather inconsistent. When looking at the plethora of information that points to HKLM\Software\Clients\Mail, it seems obvious that previous versions of Windows handled this differently and always wrote to that location. So when did this change? Has the wrong value on machine B any meaning? If not, why does it get written there in the first place? Does the mix of 64bit and 32bit email clients on the same computer change anything?

I would most appreciate if anyone would share reliable information or documentation that explains this topic! Maybe there is a Win32 API function that returns the correct value?

8
задан Community 23 May 2017 в 12:02
поделиться