Einstellung mailto: Protokoll-handler programmgesteuert in Windows 8
Bevor Windows 8, die Methode zum hinzufügen einer mailto:
protocol handler war einfach (wie hier beschrieben Register Windows-Programm mit dem mailto-Protokoll programmgesteuert)
Als von Windows 8, die alte Methode funktioniert nicht mehr. Es scheint, dass Win8 setzt die folgenden Schlüssel: HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations\MAILTO\UserChoice
.
Es scheint auch die ProgID
von der ausgewählten app wird gehasht und können nicht gefälscht werden, zumindest nicht, dass ich sagen kann.
Hat jemand eine funktionierende Methode dafür, oder kann mir in einer utility-Klasse/- code, der erläutere, wie dies programmgesteuert?
Code für jede Sprache tun.
Bearbeiten
Ich schon gefragt worden, aus anderen Diskussionen zu spezifizieren eines use-case, so dass ich denke, es wäre hilfreich im Kontext dieser Frage. Bitte beachten Sie diese Abbildung https://github.com/shellscape/Gmail-Notifier-Plus/raw/master/Promotional/prefs-account.png und das Kontrollkästchen, mit dem der Benutzer angeben, mailto Handhabung. In diesem use-case, niemand zwingt die Nutzer, der Nutzer hat die Kontrolle und macht die Entscheidung. Während windows-8-store-apps (metro/modern) eine app-manifest-Eintrag, der automatisiert die fehlenden oben beschriebenen Prozess, nichts scheint zu leicht existieren für desktop-apps.
ja. das führt nur dazu, dass der "wie wollen Sie zum öffnen dieses link" fly-in, wenn ein mailto-link angeklickt wird, danach.
InformationsquelleAutor shellscape | 2013-01-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie Ihre Anwendung aktiviert werden, indem Sie ein benutzerdefiniertes Protokoll (wie mailto:). Wenn der Benutzer Ihre app installiert, wenn es keine andere app unterstützt das Protokoll, sind Sie nicht dazu aufgefordert werden, und Sie werden automatisch zugewiesen, Protokoll.
Wenn jedoch der Benutzer bereits eine app, mit der das Protokoll, dann werden Sie dazu aufgefordert, mit einer Liste von apps, die unterstützen, dass das Protokoll mit der option, um den Standard auszuwählen. Sie können nicht erzwingen, dass der Benutzer eine spezifische Auswahl.
Auch, wenn der Benutzer klickt auf ein Protokoll (wie myprotocol:) und Sie haben keine app installiert, mit der das Protokoll dann werden Sie an den Informationsspeicher gesendet (app), die sucht automatisch alle apps, die unterstützen dieses Protokoll. Der Benutzer installiert dann, was Sie wollen. Sie können nicht erzwingen, dass der Benutzer eine spezifische Auswahl (wenn überhaupt).
Schrieb ich einen Artikel über Protokoll-Aktivierung. Es könnte für Sie interessant sein: http://blog.jerrynixon.com/2012/10/walkthrough-using-windows-8-custom.html
Hoppla, ich sah windows 8 und angenommen WinRT. Sorry.
InformationsquelleAutor Jerry Nixon - MSFT
So, ich habe Desktop-Firefox mein Standard-mailto-handler heute in Windows 8, indem die Zeichenfolge "mailto" auf den HKCU\Software\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations und setzen den Wert von "mailto" gleich "ProgID" oder "FirefoxURL". Ich habe dann gelöscht, die Schlüssel unter HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\URLAssociations\MAILTO\UserChoice, mir zu erlauben, wählen Sie den Standard-client erneut, und dieses mal Firefox war für mich zu wählen.
Die Essenz dieser Frage scheint zu sein, dass man können nicht über die Standard-client für ein Protokoll mehr (nach Windows 8). Der Benutzer auswählen muss. Allerdings, wenn Sie wollte, zu brechen, die die OS-convention konnte man Haken der Aufruf zum erstellen der wählen Sie Standard, dialog, Forschung, Anstrengung, und nur eine temporäre Behelfslösung erforderlich wäre, "brechen" Sie das Betriebssystem, oder Sie können senden Sie einen Doppelklick, um den dialog zur Auswahl für den Benutzer, vorausgesetzt, Ihr Programm erhöhte Rechte, so dass Sie senden können, klickt auf Admin windows. Das wäre wohl der einfachste Weg sein, würde der Benutzer nie wissen, was passiert ist, nur eine schnelle flash. Wirklich obwohl, nach der Registrierung, sich als Protokoll-handler, ich glaube nicht, dass irgendein Programm hinausgehen sollte das löschen der Standard-Protokoll-handler-Eintrag in der Registrierung, damit zwingen Sie den Benutzer neu zu wählen.
InformationsquelleAutor Motes
Sie nicht haben, können Sie Ihre app direkt über Dateizuordnungen nicht mehr in Windows 8. Es gibt Richtlinien, wie das zu handhaben, sowohl für Windows Store-und desktop-Anwendungen hier: http://msdn.microsoft.com/en-us/library/windows/apps/hh700321.aspx
Zusätzliche Informationen fehlen, Referenz: genau wie Ihre desktop-Anwendung registriert, so dass die referenzierte control panel-Dialoge erkennen, Ihre desktop-app.
Für Informationen, wie um zu zeigen, dass das UI dem Benutzer zu ermöglichen, festlegen der Standardeinstellungen finden Sie unter: msdn.microsoft.com/en-us/library/windows/desktop/...
Vielen Dank Pete. Nehmen, dass ein weiteres, hier ist ein C# - wrapper um die API davesbox.com/archive/2008/12/03/...
InformationsquelleAutor Ben Lower
Dies ist, wie zu Satz mailto-Protokoll manuell und einfach in Windows 8, 8.1, 2012, 2012R2
Hinzufügen eines neuen registry-Zweig
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\mailto\UserChoice
Klicken Sie dann auf
mailto:
link in Ihrem web-browser, sagen DHund schließlich gibt es in einem Programm-Liste für Sie zu wählen, die bisher nicht verfügbar war.
Auch die E-MAIL wird in die Systemsteuerung\Alle Systemsteuerungselemente\Standardprogramme jetzt. Es gibt keine andere option zum hinzufügen/entfernen ein Protokoll von dort.
InformationsquelleAutor 84RR1573R