【问题标题】:How to check whats the default mail client is installed on Windows System?如何检查 Windows 系统上安装的默认邮件客户端是什么?
【发布时间】:2014-04-15 15:45:35
【问题描述】:

我正在用 C# WPF 开发一个适用于 Windows 7/8/8.1 的应用程序,为此我需要知道系统默认的邮件客户端是什么。

我搜索了 Stackoverflow 和 Google,我发现的是

RegistryKey hklm = Registry.LocalMachine;
RegistryKey mailClients = hklm.OpenSubKey("SOFTWARE\\Clients\\Mail");
string defaultClient = (string)mailClients.GetValue("");
   if (defaultClient == null)
   {
       MessageBox.Show("Error");
       return;
   }

   else
       Process.Start("mailto: " + "?subject=" + SomeSubject + "&body=" + Body);

但在少数情况下,这并不是在 Windows 系统中检查默认邮件客户端的最佳解决方案。例如,我有一个安装了OutLook 2010 的系统,当我尝试打开outlook email 窗口时收到错误,"The command line argument is not valid. Verify the switch you are using". 是否有任何完美的方法来确定系统是否有默认邮件客户端。它可以是任何东西,Outlook、Gmail、Yahoo 邮件、ThunderBird 等。

谢谢

德布

【问题讨论】:

  • 我认为这可能是help
  • 它可能无法正常工作的另一个原因是 mailto: 后面有一个空格。应该有一个电子邮件地址。尝试使用无效字符串启动进程可能没有帮助。

标签: c# wpf email outlook


【解决方案1】:

我刚试过这个,我得到了这个错误,因为 Outlook 2010 已安装但从未配置为解决这个问题,当系统报告 Outlook 2010(可能还有其他版本)时,你会找到一种方法来测试客户端是否是配置。 This might be a good start

//KH.

【讨论】:

  • 可能是这种情况,但最终用户大部分时间会抱怨的是为什么 Outlook 会抛出这种异常。所以我需要知道如何处理它们?
  • 由于您正在使用进程,该错误将出现在 Process.StandardError 属性msdn.microsoft.com/en-us/library/vstudio/…
猜你喜欢
  • 1970-01-01
  • 2014-10-26
  • 1970-01-01
  • 2019-01-16
  • 1970-01-01
  • 2020-01-15
  • 2010-11-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多