使用C#,如何确定将哪个程序注册为默认电子邮件客户端?我不需要启动应用程序,我只是想知道它是什么。
答案 0 :(得分:11)
使用Registry类搜索注册表。这个控制台应用程序演示了这个原则。
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());
}
}
}
答案 1 :(得分:8)
您可以在注册表中查看以下密钥:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
答案 2 :(得分:3)
您可以从
中读取此注册表项HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
答案 3 :(得分:3)
默认电子邮件客户端取决于用户。 HKLM
列出所有已注册的电子邮件客户端;返回的第一个可能不是当前用户的默认值。最好阅读HKEY_CURRENT_USER\Software\Clients\Mail
。
此外,这只会为您提供电子邮件应用程序的名称。如果你想要它的可执行文件名,你必须继续使用:
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
然后从您不需要的命令行字符串中删除任何无关的内容(引号,参数)。
答案 4 :(得分:1)
我认为您应该能够在注册表HKLM\Software\Clients\Mail
找到该信息。
查找默认字符串值。