epotter
epotter

Reputation: 7799

Find default email client

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

Answers (5)

William Parke
William Parke

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

Jonathan
Jonathan

Reputation: 12025

You can read this registry key from

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail

Upvotes: 3

Richie Cotton
Richie Cotton

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

bruno conde
bruno conde

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

Sani Huttunen
Sani Huttunen

Reputation: 24385

You can look in the registry on the following key:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail

Upvotes: 8

Related Questions