Enregistrer le programme Windows avec le protocole mailto par programme

Comment puis-je faire en sorte que les liens mailto: soient enregistrés avec mon programme?

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

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

Edit: Removed reference to Delphi, because the answer is independent of your language.

0
ajouté édité
Vues: 3

3 Réponses

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

System Key: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Value Name: (Default)

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

Données de la valeur: Ligne de commande du programme de messagerie .

Je ne suis pas familier avec Delphi 7 , mais je suis sûr qu'il y a quelques bibliothèques d'édition de registre que vous pouvez utiliser pour modifier cette valeur.

Certains endroits listent plus que cette clé , d'autres juste cette clé, donc vous devrez peut-être tester un peu pour trouver le (s) bon (s).

0
ajouté

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 est clair:

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

0
ajouté
De votre lien: "Ceci est distinct du navigateur Web ou du client de messagerie par défaut qui est utilisé pour démarrer des URL arbitraires à partir de n'importe où dans le système." C'est aussi une autre chose que je me demandais, mais pas vraiment la réponse à cette question.
ajouté l'auteur Liron Yahdav, source

@Dillie-O: Your answer put me in the right direction (I should have expected it to just be a registry change) and I got this working. But I'm going to mark this as the answer because I'm going to put some additional information that I found while working on this.

La solution à cette question n'a pas vraiment d'importance quel langage de programmation vous utilisez, tant qu'il y a 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, remplacez la valeur par défaut HKEY_CLASSES_ROOT \ mailto \ shell \ open \ command par:
    " L'exécutable de votre programme " "% 1"
  • Pour associer un programme au protocole mailto pour utilisateur actuel , modifiez la valeur par défaut HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ commande en:
    " L'exécutable de votre programme " "% 1"

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

Email me

Les éléments suivants seront exécutés:
" L'exécutable de votre programme " "mailto: [email protected]"

Mise à jour (par commentaire par shellscape):
À partir de 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

0
ajouté
Oui, j'étais maintenant capable de marquer cela comme la réponse.
ajouté l'auteur Liron Yahdav, source
Avez-vous vérifié si maintenant vous pouvez marquer cela comme la réponse? Je ne connais pas la réputation minimale requise.
ajouté l'auteur tzot, source
À partir de Windows 8, cette méthode ne fonctionne plus comme prévu. Win8 applique la clé suivante: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati & zwnj; ons \ URLAssociations \ & zwnj; 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
ajouté l'auteur shellscape, source