Aquí podría ser tu PUBLICIDAD


Registre el programa de Windows con el protocolo mailto programáticamente

votos
33

¿Cómo lo hago para que los mailto:enlaces se registren en mi programa?

¿Cómo manejaría ese evento en mi programa?

La mayoría de las soluciones que encontré en una búsqueda rápida de Google son cómo hacerlo manualmente, pero debo hacer esto automáticamente para los usuarios de mi programa si hacen clic en un botón, como establecer como cliente predeterminado de correo electrónico.

Editar : se eliminó la referencia a Delphi, porque la respuesta es independiente de tu idioma.

Publicado el 01/08/2008 a las 23:08
fuente por usuario Liron Yahdav
En otros idiomas...        العربية       

3 respuestas

votos
18

@ Dillie-O: Tu respuesta me puso en la dirección correcta (debería haber esperado que fuera solo un cambio de registro) y lo hice funcionar. Pero voy a marcar esto como la respuesta porque voy a poner algo de información adicional que encontré mientras trabajaba en esto.

La solución a esta pregunta realmente no importa qué lenguaje de programación está usando, siempre y cuando haya alguna forma de modificar la configuración de registro de Windows.

Finalmente, aquí está la respuesta:

  • Para asociar un programa con el protocolo mailto para todos los usuarios en una computadora, cambie el valor predeterminado HKEY_CLASSES_ROOT \ mailto \ shell \ open \ command a:
    " El ejecutable de su programa " "% 1"
  • Para asociar un programa con el protocolo mailto para el usuario actual , cambie el valor predeterminado HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ command a:
    " El ejecutable de su programa " "% 1"

El% 1 se reemplazará con la URL completa de mailto. Por ejemplo, dado el enlace:

<a href="mailto:user@example.com">Email me</a>

Se ejecutará lo siguiente:
" El ejecutable de su programa " "mailto: usuario@ejemplo.com"

Actualización (mediante el comentario de shellscape): a
partir de Windows 8, este método ya no funciona como se esperaba. Win8 aplica la siguiente clave: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice para el cual el valor de ProgID de la aplicación seleccionada es hash y no se puede falsificar. Es un PITA real

Respondida el 05/08/2008 a las 02:49
fuente por usuario Liron Yahdav


Aquí podría ser tu PUBLICIDAD


votos
12

Por lo que he visto, hay algunas claves de registro que configuran el cliente de correo predeterminado. Uno de ellos es:

Clave del sistema: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Nombre del valor: (Default)

Tipo de datos: REG_SZ(Valor de cadena)

Valor de los datos: Mail program command-line.

No estoy familiarizado con Delphi 7, pero estoy seguro de que hay algunas bibliotecas de edición de registro que podría utilizar para modificar este valor.

Algunos lugares enumeran más que esta clave , otros solo esta clave, por lo que es posible que deba probar un poco para encontrar los adecuados.

Respondida el 01/08/2008 a las 11:12
fuente por usuario Dillie-O

votos
4

Aquí está la solución oficial de Microsoft para cambiar programáticamente el cliente de correo predeterminado. Es Visual Basic, pero espero que el concepto sea claro a partir de esto:

http://support.microsoft.com/kb/299853

Respondida el 01/08/2008 a las 11:18
fuente por usuario Michael Stum