Question

Comment puis-je faire en sorte qu'il en soit ainsi mailto: les liens seront-ils enregistrés dans mon programme ?

Comment pourrais-je alors gérer cet événement dans mon programme ?

La plupart des solutions que j'ai trouvées lors d'une recherche rapide sur Google consistent à le faire manuellement, mais je dois le faire automatiquement pour les utilisateurs de mon programme s'ils cliquent sur un bouton, tel que "définir comme client de messagerie par défaut".

Modifier:

Suppression de la référence à Delphi, car la réponse est indépendante de votre langue.

Était-ce utile?

La solution

@Dillie-O :Votre réponse m'a mis dans la bonne direction (j'aurais dû m'attendre à ce qu'il s'agisse simplement d'un changement de registre) et cela a fonctionné.Mais je vais marquer ceci comme réponse car je vais mettre quelques informations supplémentaires que j'ai trouvées en travaillant là-dessus.

La solution à cette question n'a pas vraiment d'importance sur le langage de programmation que vous utilisez, tant qu'il existe un moyen de modifier les paramètres du registre Windows.

Enfin, voici la réponse :

  • Pour associer un programme au protocole mailto pour tous les utilisateurs sur un ordinateur, modifiez la valeur par défaut de HKEY_CLASSES_ROOT\mailto\shell\open\command par :
    "L'exécutable de votre programme" "%1"
  • À associer un programme au protocole mailto pour le utilisateur actuel, modifiez la valeur par défaut de HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command par :
    "L'exécutable de votre programme" "%1"

Le %1 sera remplacé par l'URL mailto entière.Par exemple, étant donné le lien :

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

Les éléments suivants seront exécutés :
"L'exécutable de votre programme" "mailto:utilisateur@exemple.com"

Mise à jour (via commentaire de shellscape) :
Depuis Windows 8, cette méthode ne fonctionne plus comme prévu.Win8 applique la clé suivante :HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associati‌​ons\URLAssociations\‌​MAILTO\UserChoice pour lequel le ProgID de l'application sélectionnée est haché et ne peut pas être falsifié.C'est un PITA royal

Autres conseils

D'après ce que j'ai vu, quelques clés de registre définissent le client de messagerie par défaut.L'un d'eux étant :

Clé système : [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Nom de la valeur : (Default)

Type de données: REG_SZ (Valeur de chaîne)

Données de valeur: Mail program command-line.

je ne suis pas familier avec Delphi 7, mais je suis sûr qu'il y en a bibliothèques d'édition de registre là-dedans que vous pourriez utiliser pour modifier cette valeur.

Certains endroits en répertorient plus que cela clé, d'autres juste cette clé, vous devrez donc peut-être tester un peu pour trouver la ou les bonnes clés.

Voici la solution Microsoft officielle pour modifier par programme le client de messagerie par défaut.C'est Visual Basic, mais j'espère que le concept ressort clairement de ceci :

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top