Registrieren Sie Windows-Programm mit dem mailto Protokoll programmatisch

stimmen
33

Wie kann ich es so machen, mailto:werden Links mit meinem Programm registriert werden?

Wie würde ich dieses Ereignis in meinem Programm dann behandeln?

Die meisten der Lösungen, die ich von einer schnellen Google-Suche gefunden werden, wie dies manuell zu tun, aber ich brauche diese für die Nutzer meines Programms automatisch tun, wenn sie auf eine Schaltfläche klicken, wie „eingestellt als Standard-Mail-Client“.

Bearbeiten : Entfernte Verweis auf Delphi, weil die Antwort unabhängig von Ihrer Sprache.

Veröffentlicht am 01/08/2008 um 23:08
quelle vom benutzer
In anderen Sprachen...                            


3 antworten

stimmen
18

@ Dillie-O: Ihre Antwort mich in die richtige Richtung gesetzt (Ich hätte erwartet, nur eine Änderung der Registrierung sein) diese Arbeit und ich habe. Aber ich werde dies als Antwort markieren, weil ich einige zusätzliche Informationen setzen werde, die ich gefunden, während daran gearbeitet.

Die Lösung dieser Frage ist wirklich egal, welche Programmiersprache Sie verwenden, solange es eine Möglichkeit, Windows-Registry-Einstellungen zu ändern.

Schließlich, hier ist die Antwort:

  • Um ein Programm mit dem mailto - Protokoll für assoziieren alle Benutzer auf einem Computer, der HKEY_CLASSES_ROOT ändern \ mailto \ shell \ open \ command Standardwert zu:
    Ihr Programm ausführbare Datei “ „% 1“
  • Um ein Programm mit dem mailto - Protokoll für die assoziieren aktuellen Benutzer , die HKEY_CURRENT_USER \ Software \ Classes ändern \ mailto \ shell \ open \ command Standardwert zu:
    Ihr Programm ausführbare Datei “ „% 1“

Das% 1 wird mit der gesamten mailto URL ersetzt werden. Um zum Beispiel den angegebenen Link:

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

Im Folgenden wird ausgeführt:
Ihr Programm ausführbare “ „mailto: user@example.com“

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

Beantwortet am 05/08/2008 um 02:49
quelle vom benutzer

stimmen
12

Von dem, was ich gesehen habe, gibt es ein paar Registry-Schlüssel, die den Standard-Mail-Client festgelegt. Einer von ihnen ist:

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

Wertname: (Default)

Datentyp: REG_SZ(String Value)

Wert: Mail program command-line.

Ich bin nicht vertraut mit Delphi 7, aber ich bin sicher , dass es einige sind zum Bearbeiten der Registrierung Bibliotheken da drin, diesen Wert zu ändern , verwenden könnte.

Einige Orte auflisten mehr als diesen Schlüssel , andere nur diese Taste, so müssen Sie möglicherweise ein wenig testen , um die richtige zu finden (s).

Beantwortet am 01/08/2008 um 23:12
quelle vom benutzer

stimmen
4

Hier ist die offiziell Microsoft Solution programmatisch den Standard-Mail-Client zu ändern. Es ist Visual Basic, aber ich hoffe, dass das Konzept aus, das ist klar:

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

Beantwortet am 01/08/2008 um 23:18
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more