如何以及在何处确切地在注册表中设置默认电子邮件客户端?

Hat*_*tch 8 windows email registry

为了找出默认的电子邮件客户端是什么,我一遍又一遍地找到相同的信息:查看默认的字符串HKLM\Software\Clients\Mail.(参见例如此相关问题)

但是,对于所有操作系统和/或情况似乎都不是这样:我有两台运行Win7 64bit的计算机,我们称之为A和B.A安装了Outlook 2010 64位和Thunderbird 3 32位.B安装了Outlook 2007 32位和Thunderbird 3 32位.A和B都将Thunderbird设置为其默认邮件客户端.

但是,注册表的状态并不像我预期的那样:

在机器A,两者HKLM\Software\Clients\MailHKLM\Software\Wow6432Node\Clients\Mail有一个空的字符串作为默认字符串值.在B上,这两个键都包含Microsoft Outlook默认字符串值,这显然是错误的.进一步的调查显示,正确的值似乎写HKCU\Software\Clients\Mail在两台机器上.

我希望我的应用程序能够正确处理所有情况.有点道理,Win7现在似乎为每个用户拥有一个单独的默认邮件客户端,但它看起来相当不一致.在查看指向过多的信息时,HKLM\Software\Clients\Mail很明显以前版本的Windows处理的方式不同,并且始终写入该位置.那么什么时候改变了?机器B上有错误的值是什么意思?如果没有,为什么它首先写在那里?同一台计算机上64位和32位电子邮件客户端的混合是否会发生变化?

如果有人愿意分享解释这个主题的可靠信息或文档,我将不胜感激!也许有一个Win32 API函数返回正确的值?

Den*_*s G 11

这篇MSDN文章对您有帮助吗?

如何使用Windows"开始"菜单注册Internet浏览器或电子邮件客户端

在HKEY_CURRENT_USER子树中进行的注册对于控制台用户具有比在HKEY_LOCAL_MACHINE中进行的相应注册更高的优先级.对于系统上的新用户,使用存储在HKEY_LOCAL_MACHINE中的设置.

对于Windows XP,有一篇特别文章:如何在Windows XP中编程方式修改默认Web浏览器和电子邮件客户端以及如何在Windows XP 中实现每用户默认邮件客户端?

抱歉,无法帮助您使用Win32 API.