Reputation: 7799
Using C#, how can I determine which program is registered as the default email client? I don't need to launch the app, I just want to know what it is.
Upvotes: 6
Views: 8208
Reputation: 31
Default email client depends on the user. HKLM
lists all registered email clients; the first one returned may not be the current user's default. Better to read HKEY_CURRENT_USER\Software\Clients\Mail
.
Also this only gives you the name of the email application. If you want its executable file name, you have to go on with something like:
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
and then remove anything extraneous from the command-line string that you don't need (quotes, parameters).
Upvotes: 3
Reputation: 12025
You can read this registry key from
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
Upvotes: 3
Reputation: 121077
Use the Registry class to search the registry. This console app demonstrates the principle.
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());
}
}
}
Upvotes: 11
Reputation: 48265
I think you should be able to find that info in the registry at HKLM\Software\Clients\Mail
.
Look for the default string value.
Upvotes: 1
Reputation: 24385
You can look in the registry on the following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
Upvotes: 8