Encuentra cliente de correo predeterminado
-
12-09-2019 - |
Pregunta
Uso de C #, ¿cómo puedo determinar qué programa está registrado como cliente de correo electrónico predeterminado? No necesito a lanzar la aplicación, sólo quiero saber lo que es.
Solución
Utilice la clase del registro para buscar 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());
}
}
}
Otros consejos
Usted puede mirar en el registro en la siguiente clave:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
Usted puede leer esta clave de registro de
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
cliente de correo electrónico predeterminado depende del usuario. HKLM
listas de todos los clientes de correo electrónico registrados; el primero devuelto puede que no sea por defecto del usuario actual. Mejor leer HKEY_CURRENT_USER\Software\Clients\Mail
.
También esto sólo 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).
Creo que debería ser capaz de encontrar esa información en el registro en HKLM\Software\Clients\Mail
.
Busque el valor de cadena por defecto.