PDA

Ver la Versión Completa : ¿ Cómo saber que cliente de correo está instalado por defecto en un PC ?


Aldo
18-05-2006, 12:05:31
Hola a todos:

De antemano agradezco vuestra atención a mi pregunta.

Estoy desarrollando una aplicación que utilizará el cliente de correo que esté intalada en el ordenador del usuario cliente y no sé como saber cual de todos los correos instalados en ese PC es el que está definido como correo predeterminado.

Ej: En un ordenador donde está como predeterminado el Microsoft Outlook y se intenta ejecutar el Outlook Express, sale un mensaje de advertencia y confirmación indicándote lo siguiente:

Outlook Express no es actualmente el cliente de correo predeterminado.
¿Desea hacerlo cliente de correo predeterminado?.

Bueno mi pregunta es como saber ( en que entrada del registro de windows encontrar esta información ) ¿cuál es el correo cliente predeterminado?.

Estuve buscando información en le Foro, pero no encontré esto específicamente. Si alguien me pudiera decir como encontralo os lo agradeceré de antemano.

Muchas gracias por el tiempo prestado.

Saludos Aldo

Sotrono
18-05-2006, 12:40:39
Hola, si haces esto:

ShellExecute(Handle, 'open', 'mailto:direccion@servidor.com?subject=Titulo', nil, nil, SW_SHOW);


Se va a abrir el cliente de correos por defecto.

Bytes...

seoane
18-05-2006, 13:14:18
Aunque la solucion de Sotrono me parece muy adecuada, puede que lo que tu necesites saber, por algun motivo, es el nombre del cliente de correo. Pues entonces podemos utilizar algo asi:


uses Registry;

function Correo: string;
var
Cliente: String;
begin
Result:= '';
with TRegistry.Create do
try
RootKey:= HKEY_LOCAL_MACHINE;
Cliente:= '';
if OpenKey('\SOFTWARE\Clients\Mail' ,FALSE) then
begin
Cliente:= ReadString('');
CloseKey;
end;
if OpenKey('\SOFTWARE\Clients\Mail\' + Cliente + '\shell\open\command' ,FALSE) then
begin
Result:= ReadString('');
CloseKey;
end;
finally
Free;
end;
end;

Aldo
18-05-2006, 16:02:12
Hola Seoane. Era justo lo que necesitaba. Muchas gracias por tu tiempo.

petete2008
12-06-2013, 11:33:18
¿seria posible asignar por delphi directamente que el cliente predeterminado que quiero es el outlook?
Gracias

dec
12-06-2013, 11:58:15
¿seria posible asignar por delphi directamente que el cliente predeterminado que quiero es el outlook?
Gracias

No lo he probado, pero, tal vez sería posible cambiando las claves del Registro de Windows que seoane mostró más arriba. No obstante, a simple vista, tu aplicación necesitaría de "privilegios de administrador". Tal vez exista otra forma de hacer lo que quieres, no obstante.

Edito: Lo que a lo mejor sí puedes hacer es ejecutar, directamente, el programa "outlook". Tal como propuso Sotrono más arriba, pero, proporcionando la ruta del programa que quieres ejecutar, cosa que puedes hacer con la misma función "ShellExecute".