Vă mulțumim pentru susținere

Înregistrați programele Windows programat cu protocolul mailto

Cum fac acest lucru

mailto: vor fi înregistrate cu programul meu?

Cum aș putea să mă ocup de acel eveniment în programul meu?

Majoritatea soluțiilor pe care le-am găsit dintr-o căutare rapidă pe Google sunt cum să faceți acest lucru manual, dar trebuie să fac acest lucru în mod automat pentru utilizatorii programului meu dacă dau clic pe un buton, cum ar fi "setați ca client implicit de e-mail".

Edit: Removed reference to Delphi, because the answer is independent of your language.

0
adăugat editat

3 răspunsuri

Din ceea ce am văzut, există câteva chei de registry care stabilesc clientul de e-mail implicit. Una dintre ele fiind:

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

Value Name: (Default)

Tip de date: REG_SZ (String Value)

Valoarea datelor: Linia de comandă a programului de e-mail .

Nu sunt familar cu Delphi 7 , dar sunt sigur că există unele biblioteci de editare în registri , pe care le puteți folosi pentru a modifica această valoare.

Unele locuri afișează mai mult decât această cheie , altele doar această cheie, prin urmare este posibil să fie necesar să testați puțin pentru a găsi una (cele) potrivită.

0
adăugat

Aici este soluția oficială Microsoft de a schimba programabil clientul de e-mail implicit. Este Visual Basic, dar sper ca conceptul sa fie clar din aceasta:

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

0
adăugat
Din linkul dvs.: "Acesta este separat de browserul Web implicit sau clientul de e-mail care este folosit pentru a porni URL-uri arbitrare de oriunde din sistem." Acesta este și alt lucru pe care mă întrebam, dar nu chiar răspunsul la această întrebare.
adăugat autor Liron Yahdav

@Dillie-O: Your answer put me in the right direction (I should have expected it to just be a registry change) and I got this working. But I'm going to mark this as the answer because I'm going to put some additional information that I found while working on this.

Soluția la această întrebare într-adevăr nu contează ce limbă de programare utilizați, atâta timp cât există un mod de a modifica setările de registry Windows.

În cele din urmă, iată răspunsul:

  • Pentru a asocia un program cu protocolul mailto pentru toți utilizatorii pe un computer, schimbați valoarea implicită a comenzii HKEY_CLASSES_ROOT \ mailto \ shell \ open \: " Programul dvs. executabil " "% 1"
  • Pentru a asociați un program cu protocolul mailto pentru utilizatorul curent , modificați comanda HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ Valoarea implicită la:
    " Programul dvs. executabil " "% 1"

Codul% 1 va fi înlocuit cu întreaga adresă URL a mailto. De exemplu, având în vedere link-ul:

Email me

Următoarele vor fi executate:
" executabilul programului " mailto: [email protected] "

Actualizare (prin comentariu de shellscape):
Din Windows 8, această metodă nu mai funcționează așa cum era de așteptat. Win8 execută următoarea cheie: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice pentru care ProgID aplicația selectată este hash și nu poate fi falsificată. Este un PITA regal

0
adăugat
Da, am putut acum să notez acest lucru ca răspuns.
adăugat autor Liron Yahdav
Ați verificat dacă puteți marca acest mesaj ca răspuns ? Nu știu reputația minimă necesară.
adăugat autor tzot
Din Windows 8, această metodă nu mai funcționează așa cum era de așteptat. Win8 execută următoarea cheie: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati & zwnj; ons \ URLAssociations \ & zwnj; MAILTO \ UserChoice pentru care ProgID-ul aplicației selectate este șters și nu poate fi falsificat. Este un PITA regal
adăugat autor shellscape