tagger tag windows mailto

tag - Registre el programa de Windows con el protocolo mailto mediante programación



tag folders (3)

Aquí está la solución oficial de Microsoft para cambiar mediante programación 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

¿Cómo lo hago para que mailto: enlaces se registren con 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 en Google son cómo hacer esto manualmente, pero necesito hacerlo automáticamente para los usuarios de mi programa si hacen clic en un botón, como "establecer como cliente de correo electrónico predeterminado".

Editar:

Se eliminó la referencia a Delphi, porque la respuesta es independiente de su idioma.


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)

Datos del valor: 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 usar 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 la (s) correcta (s).


@ Dillie-O: Su respuesta me puso en la dirección correcta (debería haber esperado que fuera solo un cambio en el registro) y conseguí que esto funcionara. Pero voy a marcar esto como la respuesta porque voy a poner 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 que haya alguna forma de modificar la configuración del 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:[email protected]">Email me</a>

Se ejecutará lo siguiente:
" El ejecutable de su programa " "mailto: [email protected]"

Actualización (a través del 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 ProgID de la aplicación seleccionada se codifica y no se puede falsificar. Es una PITA real