2009-07-13 16 views

Respuesta

9

Utilice la clase de Registro para buscar en el registro. Esta aplicación de consola demuestra el principio.

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

El cliente de correo electrónico predeterminado es una política por usuario. Estoy de acuerdo con la respuesta de William Parke a continuación. – JDennis

+0

¿Hay alguna forma de cómo iniciar la aplicación? – Rich

8

Usted puede mirar en el registro en la siguiente clave:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
+2

+1 solo un poco más rápido que yo ... – Jonathan

3

Usted puede leer esta clave del Registro de

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
1

Creo que debería ser capaz de encontrar esa información en el registro en HKLM\Software\Clients\Mail.

Busque el valor de cadena predeterminado.

3

El cliente de correo electrónico predeterminado depende del usuario. HKLM enumera todos los clientes de correo electrónico registrados; el primero devuelto puede no ser el predeterminado del usuario actual. Mejor leer HKEY_CURRENT_USER\Software\Clients\Mail.

También esto solo le da el nombre de la aplicación de correo electrónico. Si desea que su nombre de archivo ejecutable, que tiene que seguir con algo como:

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

y luego eliminar cualquier cosa extraña de la cadena de la línea de comandos que no es necesario (citas, parámetros).

Cuestiones relacionadas