默认电子邮件客户端在注册表中设置的方式和位置在哪里? [英] How and where exactly does the default email client gets set in the registry?

查看:1220
本文介绍了默认电子邮件客户端在注册表中设置的方式和位置在哪里?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In order to find out what the default email client is, I found the same information over and over again: Look at the default string in HKLM\Software\Clients\Mail. (see for example this related question)

然而,对于所有的操作系​​统和/或情况来说,这似乎并非如此:
我有两台运行Win7 64bit的机器,我们称之为A和B.
A有Outlook 2010 64位和Thunderbird 3 32bit安装。
B已安装Outlook 2007 32位和Thunderbird 3 32位。
A和B都将Thunderbird设置为默认邮件客户端。

However, this seems not to be true for all OSs and/or situations: I have two machines running Win7 64bit, let's call them A and B. A has Outlook 2010 64bit and Thunderbird 3 32bit installed. B has Outlook 2007 32bit and Thunderbird 3 32bit installed. Both A and B have Thunderbird set as their default mail client.

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

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

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

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.

我希望我的应用程序正确处理所有情况。这是有意义的,Win7现在似乎为每个用户持有一个单独的默认邮件客户端,但它似乎是不一致的。当查看指向 HKLM\Software\Clients\Mail 的大量信息时,似乎很明显,以前版本的Windows处理方式不同,总是写给位置。那么这个改变的时候呢?机B上有错误的价值吗?如果没有,为什么首先写在那里? 64位和32位电子邮件客户端在同一台计算机上的组合是否会改变任何东西?

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?

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

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?

推荐答案

这个MSDN文章是否帮助你?

Does this MSDN article help you?

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


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

Registrations made in the HKEY_CURRENT_USER subtree have higher precedence for the console user than corresponding registrations made in the HKEY_LOCAL_MACHINE. For new users on the system, the settings stored in HKEY_LOCAL_MACHINE are used.

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

For Windows XP a special article: How to modify the default Web browser and e-mail client programmatically in Windows XP and How to implement a per-user default mail client in Windows XP?

对不起,无法帮助您使用Win32 API。

Sorry, can't help you with the Win32 API.

这篇关于默认电子邮件客户端在注册表中设置的方式和位置在哪里?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆