Zarejestruj programu Windows za pomocą protokołu mailto programowo

głosy
33

Jak zrobić to tak, mailto:linki zostaną zarejestrowane w moim programie?

Jak bym wtedy obsługiwać to wydarzenie w moim programie?

Większość rozwiązań znalazłem z szybkiego wyszukiwania Google to jak to zrobić ręcznie, ale muszę to zrobić automatycznie dla użytkowników mojego programu, jeśli klikniesz przycisk, takie jak „ustawiony jako domyślny klient poczty e-mail”.

Edit : Usunięto odniesienie do Delphi, ponieważ odpowiedź jest niezależny od języka.

Utwórz 01/08/2008 o 23:08
źródło użytkownik
W innych językach...                            


3 odpowiedzi

głosy
18

@ Dillie-O: Twoja odpowiedź mnie w dobrym kierunku (I należy się spodziewać, że po prostu być zmiana rejestru) i dostałam tę pracę. Ale mam zamiar, aby oznaczyć to jako odpowiedź, ponieważ mam zamiar umieścić kilka dodatkowych informacji, które znalazłem podczas pracy w tej sprawie.

Rozwiązaniem tej kwestii naprawdę nie ma znaczenia, jakiego języka programowania używasz, jak długo istnieje jakiś sposób, aby zmodyfikować ustawienia rejestru Windows.

Wreszcie, oto odpowiedź:

  • Aby powiązać program z protokołu mailto dla wszystkich użytkowników na komputerze, należy zmienić HKEY_CLASSES_ROOT \ mailto \ shell \ open \ default wartość polecenia do:
    Twój program wykonywalny ” „% 1”
  • Aby powiązać program z protokołem mailto dla bieżącego użytkownika , zmień HKEY_CURRENT_USER \ Software \ Classes \ mailto \ shell \ open \ default wartość polecenia do:
    " Twój program wykonywalny " "% 1"

% 1 zostanie zastąpiony cały mailto URL. Na przykład, ze względu na link:

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

Poniższa zostanie wykonany:
Twój program wykonywalny ” „mailto: user@example.com”

Update (poprzez komentarzem shellscape):
W Windows 8, ta metoda nie działa zgodnie z oczekiwaniami. Win8 wymusza następujący klucz: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ Shell \ Associati ons \ URLAssociations \ MAILTO \ UserChoice dla których ProgID wybranej aplikacji jest mieszany i nie mogą być sfałszowane. Jest to królewski PITA

Odpowiedział 05/08/2008 o 02:49
źródło użytkownik

głosy
12

Z tego co widziałem, istnieje kilka kluczy rejestru, które wyznaczają domyślnego klienta poczty. Jednym z nich jest:

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

Nazwa wartości: (Default)

Typ danych: REG_SZ(wartość String)

Dane wartości: Mail program command-line.

Nie jestem obeznanym z Delphi 7, ale jestem pewien, że istnieją pewne biblioteki edycji rejestru tam, że można użyć, aby zmodyfikować tę wartość.

Wymień kilka miejsc więcej niż w tym kluczu , inni właśnie ten klucz, więc może trzeba przetestować trochę aby znaleźć odpowiedni (y).

Odpowiedział 01/08/2008 o 23:12
źródło użytkownik

głosy
4

Oto oficjalny Rozwiązanie Microsoft programowo zmienić domyślnego klienta poczty. To Visual Basic, ale mam nadzieję, że pojęcie to jest oczywiste, z tego:

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

Odpowiedział 01/08/2008 o 23:18
źródło użytkownik

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