Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ¿ Cómo saber que cliente de correo está instalado por defecto en un PC ? (https://www.clubdelphi.com/foros/showthread.php?t=31801)

Aldo 18-05-2006 12:05:31

¿ Cómo saber que cliente de correo está instalado por defecto en un PC ?
 
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:
Código Delphi [-]
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:

Código Delphi [-]
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

Muchas Gracias
 
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

Cita:

Empezado por petete2008 (Mensaje 462124)
¿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".


La franja horaria es GMT +2. Ahora son las 21:13:14.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi