Registrieren Sie das Windows-Programm programmgesteuert mit dem mailto-Protokoll

Translate

Wie mache ich das so?mailto:Links werden mit meinem Programm registriert?

Wie würde ich dann mit diesem Ereignis in meinem Programm umgehen?

Die meisten Lösungen, die ich bei einer schnellen Google-Suche gefunden habe, sind die manuelle Vorgehensweise. Ich muss dies jedoch automatisch für Benutzer meines Programms tun, wenn sie auf eine Schaltfläche klicken, z. B. "Als Standard-E-Mail-Client festlegen".

Bearbeiten:

Verweis auf Delphi entfernt, da die Antwort unabhängig von Ihrer Sprache ist.

This question and all comments follow the "Attribution Required."

Alle Antworten

Translate

@ Dillie-O: Ihre Antwort hat mich in die richtige Richtung gebracht (ich hätte erwarten sollen, dass es sich nur um eine Registrierungsänderung handelt) und ich habe das zum Laufen gebracht. Aber ich werde dies als Antwort markieren, weil ich einige zusätzliche Informationen einfügen werde, die ich bei der Arbeit daran gefunden habe.

Die Lösung dieser Frage spielt wirklich keine Rolle, welche Programmiersprache Sie verwenden, solange es eine Möglichkeit gibt, die Windows-Registrierungseinstellungen zu ändern.

Zum Schluss hier die Antwort:

  • So verknüpfen Sie ein Programm mit dem mailto-Protokoll fürAlle NutzerÄndern Sie auf einem Computer den Befehl HKEY_CLASSES_ROOT \ mailto \ shell \ open \ Standardwert in:
    "Die ausführbare Datei Ihres Programms% 1
  • ZuVerknüpfen Sie ein Programm mit dem Mailto-Protokoll für dasaktueller BenutzerÄndern Sie den Standardwert HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ command in:
    "Die ausführbare Datei Ihres Programms% 1

% 1 wird durch die gesamte Mailto-URL ersetzt. Zum Beispiel unter Berücksichtigung des Links:

<a href="mailto:[email protected]">Email me</a>

Folgendes wird ausgeführt:
"Die ausführbare Datei Ihres Programms"" mailto: [email protected] "

Update (per Kommentar von shellscape):
Ab Windows 8 funktioniert diese Methode nicht mehr wie erwartet. Win8 erzwingt den folgenden Schlüssel: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Assoziationen \ URLAssociations \ ‌ MAILTO \ UserChoice, für den die ProgID der ausgewählten App gehasht und nicht gefälscht werden kann. Es ist eine königliche PITA

Quelle
Translate

Soweit ich gesehen habe, gibt es einige Registrierungsschlüssel, die den Standard-E-Mail-Client festlegen. Einer von ihnen ist:

Systemschlüssel:[HKEY_CLASSES_ROOT\mailto\shell\open\command]

Wert Name:(Default)

Datentyp:REG_SZ(String Wert)

Messwert:Mail program command-line.

Ich bin nicht vertraut mitDelphi 7, aber ich bin sicher, dass es einige gibtRegistrierungsbearbeitungsbibliothekenDort können Sie diesen Wert ändern.

Einige Orte listen mehr als dies aufSchlüssel, andere nur diesen Schlüssel, so dass Sie möglicherweise ein wenig testen müssen, um die richtigen zu finden.

Quelle
Translate

Hier ist die offizielle Microsoft-Lösung zum programmgesteuerten Ändern des Standard-Mail-Clients. Es ist Visual Basic, aber ich hoffe, das Konzept ist daraus klar:

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

Quelle