Windows-programma registreert bij het mailto protocol programmatisch

stemmen
33

Hoe maak ik het zo mailto:links zullen worden geregistreerd bij mijn programma?

Hoe zou ik dan behandelen die gebeurtenis in mijn programma?

Het merendeel van de oplossingen die ik gevonden van een snelle zoekfunctie van Google zijn hoe u dit handmatig doen, maar ik moet dit automatisch voor de gebruikers van mijn programma als ze op een knop, zoals ingesteld als standaard e-mailclient.

Bewerken : Verwijderd verwijzing naar Delphi, omdat het antwoord is onafhankelijk van uw taal.

De vraag is gesteld op 01/08/2008 om 23:08
bron van user
In andere talen...                            


3 antwoorden

stemmen
18

@ Dillie-O: Uw antwoord zette me in de juiste richting (ik zou hebben verwacht dat het slechts een wijziging in het register zijn) en ik kreeg dit het werken. Maar ik ga deze markeren als het antwoord, want ik ga naar wat extra informatie die ik vond tijdens het werken op deze plaatsen.

De oplossing van deze vraag is echt niet uit, wat programmeertaal je gebruikt, zolang er is een manier om Windows-register instellingen te wijzigen.

Tot slot, hier is het antwoord:

  • Om een programma te associëren met de mailto protocol voor alle gebruikers op een computer, verander de HKEY_CLASSES_ROOT \ mailto \ shell \ geopend \ command Default waarde:
    " Uw programma executable " "% 1"
  • Om een programma te associëren met de mailto protocol voor de huidige gebruiker , wijzigt u de HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ geopend \ command Default waarde:
    " Uw programma executable " "% 1"

De% 1 wordt vervangen door het gehele mailto URL. Bijvoorbeeld, gezien de link:

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

Het volgende zal worden uitgevoerd:
" De programma executable " "mailto: user@example.com"

Update (via commentaar door shellscape):
Met ingang van Windows 8, deze methode werkt niet meer zoals verwacht. Win8 dwingt de volgende sleutel: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice waarvoor de ProgID van de geselecteerde app is hash en kan niet worden vervalst. Het is een Royal Pita

antwoordde op 05/08/2008 om 02:49
bron van user

stemmen
12

Van wat ik heb gezien, zijn er een paar registersleutels die de standaard e-mailclient in te stellen. Eén van hen is:

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

Waarde Naam: (Default)

Data Type: REG_SZ(String Value)

Value Data: Mail program command-line.

Ik ben niet vertrouwd met Delphi 7, maar ik weet zeker dat er een aantal registry editing bibliotheken daar dat je zou kunnen gebruiken om deze waarde te wijzigen.

Sommige plaatsen een lijst van meer dan dit sleutel , anderen alleen deze sleutel, dus je kan nodig zijn om een beetje te testen om de juiste één (s) te vinden.

antwoordde op 01/08/2008 om 23:12
bron van user

stemmen
4

Hier is de officiële Microsoft-oplossing voor de standaard e-mailclient programmatisch te wijzigen. Het is Visual Basic, maar ik hoop dat het concept is duidelijk uit het volgende:

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

antwoordde op 01/08/2008 om 23:18
bron van user

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