Registrieren Sie ein Windows-Programm programmgesteuert mit dem Mailto-Protokoll

StackOverflow https://stackoverflow.com/questions/231

  •  08-06-2019
  •  | 
  •  

Frage

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

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

Bei den meisten Lösungen, die ich bei einer schnellen Google-Suche gefunden habe, geht es darum, dies manuell zu tun, aber ich muss dies für Benutzer meines Programms automatisch 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.

War es hilfreich?

Lösung

@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 es zum Laufen gebracht.Aber ich werde dies als Antwort markieren, weil ich einige zusätzliche Informationen hinzufügen werde, die ich bei der Arbeit daran gefunden habe.

Die Lösung dieser Frage spielt 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ür Alle Nutzer Ändern Sie auf einem Computer den Standardwert HKEY_CLASSES_ROOT\mailto\shell\open\command in:
    "Die ausführbare Datei Ihres Programms" "%1"
  • Zu Verknüpfen Sie ein Programm mit dem Mailto-Protokoll für aktueller 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 folgendem Link:

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

Folgendes wird ausgeführt:
"Die ausführbare Datei Ihres Programms" "mailto:user@example.com"

Update (über 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\Associati‌​ons\URLAssociations\‌​MAILTO\UserChoice, für den die ProgID der ausgewählten App gehasht wird und nicht gefälscht werden kann.Es ist ein königliches PITA

Andere Tipps

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

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

Wertname: (Default)

Datentyp: REG_SZ (String-Wert)

Messwert: Mail program command-line.

Ich bin nicht vertraut mit Delphi 7, aber ich bin mir sicher, dass es welche gibt Registrierungsbearbeitungsbibliotheken darin, mit dem Sie diesen Wert ändern können.

Einige Orte listen mehr als das auf Schlüssel, andere nur diesen Schlüssel, daher müssen Sie möglicherweise ein wenig testen, um den/die richtigen(n) zu finden.

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

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top