Vra

Hoe maak ek dit so mailto: skakels by my program geregistreer sal word?

Hoe sal ek dan daardie gebeurtenis in my program hanteer?

Die meeste van die oplossings wat ek uit 'n vinnige Google-soektog gevind het, is hoe om dit met die hand te doen, maar ek moet dit outomaties doen vir gebruikers van my program as hulle op 'n knoppie klik, soos "stel as verstek e-poskliënt".

Wysig:

Verwysing na Delphi is verwyder, want die antwoord is onafhanklik van jou taal.

Was dit nuttig?

Oplossing

@Dillie-O:Jou antwoord het my in die regte rigting geplaas (ek moes verwag het dat dit net 'n registerverandering sou wees) en ek het dit aan die werk gekry.Maar ek gaan dit as die antwoord merk, want ek gaan 'n paar bykomende inligting plaas wat ek gevind het terwyl ek hieraan gewerk het.

Die oplossing vir hierdie vraag maak nie saak watter programmeertaal jy gebruik nie, solank daar 'n manier is om Windows-registerinstellings te verander.

Ten slotte, hier is die antwoord:

  • Om 'n program te assosieer met die mailto-protokol vir alle gebruikers op 'n rekenaar, verander die HKEY_CLASSES_ROOT\mailto\shell\open\command Verstekwaarde na:
    "Jou program is uitvoerbaar" "%1"
  • Om assosieer 'n program met die mailto-protokol vir die Huidige gebruiker, verander die HKEY_CURRENT_USER\Software\Classes\mailto\shell\open\command Verstekwaarde na:
    "Jou program is uitvoerbaar" "%1"

Die %1 sal vervang word met die hele mailto-URL.Byvoorbeeld, gegewe die skakel:

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

Die volgende sal uitgevoer word:
"Jou program is uitvoerbaar" "mailto:gebruiker@voorbeeld.com"

Opdatering (via kommentaar deur shellscape):
Vanaf Windows 8 werk hierdie metode nie meer soos verwag nie.Win8 dwing die volgende sleutel af:HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associati‌ons\URLAssociations\‌​MAILTO\UserChoice waarvoor die ProgID van die geselekteerde toepassing gehash is en nie vervals kan word nie.Dit is 'n koninklike PITA

Ander wenke

Van wat ek gesien het, is daar 'n paar registersleutels wat die verstekposkliënt stel.Een van hulle is:

Stelselsleutel: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Waarde Naam: (Default)

Datatipe: REG_SZ (Stringwaarde)

Waarde data: Mail program command-line.

Ek is nie bekend met Delphi 7, maar ek is seker daar is 'n paar register redigering biblioteke daarin wat jy kan gebruik om hierdie waarde te verander.

Sommige plekke lys meer as dit sleutel, ander net hierdie sleutel, so jy sal dalk 'n bietjie moet toets om die regte een(s) te vind.

Hier is die amptelike Microsoft-oplossing om die verstekposkliënt programmaties te verander.Dit is Visual Basic, maar ek hoop die konsep is duidelik hieruit:

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

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top