2009-07-13 60 views

回答

9

使用注册表类来搜索注册表。该控制台应用程序演示了原理。

using System; 
using Microsoft.Win32; 

namespace RegistryTestApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     object mailClient = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail", "", "none"); 
     Console.WriteLine(mailClient.ToString()); 
     } 
    } 
} 
+0

默认的电子邮件客户端是按用户策略。我同意下面的William Parke的回应。 – JDennis 2014-04-30 14:14:51

8

你可以在注册表中查找以下关键:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
+2

+1只比我快一点... – Jonathan 2009-07-13 14:28:52

3

您可以从

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
1

阅读此注册表项我想你应该可以在注册表中找到这些信息在HKLM\Software\Clients\Mail

查找默认字符串值。

3

默认的电子邮件客户端取决于用户。 HKLM列出所有注册的电子邮件客户端;第一个返回的可能不是当前用户的默认值。更好地阅读HKEY_CURRENT_USER\Software\Clients\Mail

此外,这只给你电子邮件应用程序的名称。如果你想它的可执行文件名,你必须去与类似:

object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none"); 

,然后删除任何东西从你不需要(报价参数)命令行字符串无关。

相关问题