Înregistrează-program Windows cu protocolul mailto programatică

voturi
33

Cum pot face în așa fel mailto:link - uri vor fi înregistrate cu programul meu?

Cum aș apoi se ocupe de acel eveniment în programul meu?

Cele mai multe dintre soluțiile am găsit dintr-o căutare rapidă Google sunt modul de a face 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 „setat ca client de e-mail implicit“.

Editare : Eliminat trimitere la Delphi, pentru că răspunsul este independent de limba.

Întrebat 01/08/2008 la 23:08
sursa de către utilizator
În alte limbi...                            


3 răspunsuri

voturi
18

@ Dillie-O: Răspunsul tău ma pus în direcția cea bună (aș fi așteptat ca acesta să fie doar o schimbare de registru) și am primit acest lucru. Dar am de gând să marcheze acest lucru ca răspuns pentru că am de gând să pun niște informații suplimentare pe care am găsit în timp ce lucrează la acest lucru.

Soluția la această întrebare într-adevăr nu contează ce limbaj de programare pe care îl utilizați, atâta timp cât există o cale 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 de pe un computer, schimbați HKEY_CLASSES_ROOT \ mailto \ shell \ open \ command valoare implicită pentru:
    " Programul tău executabil " "% 1"
  • Pentru a asocia un program cu protocolul mailto pentru utilizatorul curent , schimbarea HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ command valoare implicită pentru:
    " Programul tău executabil " "% 1"

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

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

Următoarele vor fi executate:
executabil Programul tău “ „mailto: user@example.com“

Actualizare (prin comentariul de shellscape):
Ca de Windows 8, această metodă nu mai funcționează conform așteptărilor. Win8 impune următoarea cheie: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ , pentru care alegerea utilizatorului de tip PROGID app selectat este trunchiată și nu pot fi falsificate. Este o PITA regală

Publicat 05/08/2008 la 02:49
sursa de către utilizator

voturi
12

Din câte am văzut, există câteva chei de registru care a stabilit clientul de e-mail implicit. Unul dintre ele fiind:

Cheie Sistem: [HKEY_CLASSES_ROOT\mailto\shell\open\command]

Valoare Nume: (Default)

Tip de date: REG_SZ(String Value)

Valoare Date: Mail program command-line.

Nu sunt familar cu Delphi 7, dar sunt sigur că există unele biblioteci de editare registru acolo pe care le - ar putea folosi pentru a modifica această valoare.

Unele locuri lista de mai mult decât această cheie , alții doar această cheie, astfel încât să poate fi necesar pentru a testa un pic pentru a găsi cea corectă (e).

Publicat 01/08/2008 la 23:12
sursa de către utilizator

voturi
4

Aici este soluția oficială Microsoft pentru a schimba programatic clientul implicit e-mail. Este Visual Basic, dar sper că conceptul este clar din aceasta:

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

Publicat 01/08/2008 la 23:18
sursa de către utilizator

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