Ja, Sie können es mit direkter Registrierungsmanipulation skripten.
Die kurze Antwort
Kopieren Sie jede der folgenden Komponenten in .regDateien (wie firefox.reg, chrome.reg, ie.reg) und führen Sie sie , wenn Sie wechseln möchten (oder Skript mit reg.exe).
Für Firefox:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Für Chrome:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Für IE9:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
Die lange Antwort
Windows speichert Standardprotokoll-Standardregistrierungen pro Benutzer unter dem UrlAssociationsSchlüssel unter
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Ähnlich wie bei Dateizuordnungen kann es ein "Standardprogramm" für Links geben. Dies ist eine Art Jargon-Terminologie, die sich auf den UserChoiceSchlüssel bezieht. Es gibt auch eine standardmäßige Dateizuordnungs-ähnliche Shell-Registrierung unter der httpProgId, die ebenfalls geändert werden kann. Die proximale Konfiguration für Browser erfolgt jedoch über Standardprogramme (siehe unten für einen zusätzlichen Kommentar hierzu ).
Worüber ich hier spreche, ist, was Sie ändern, wenn Sie in der Systemsteuerung im Abschnitt Standardprogramme einen Browser einrichten:

Um dies direkt in der Registrierung zu konfigurieren, überprüfen wir zunächst, ob es bereits vorhanden ist. In diesem Screenshot habe ich zu dieser Tastatureingabe navigiert regedit.exeund Chrome ist mein Standardbrowser, der durch den ChromeHTMLProgId-Wert gekennzeichnet ist.

Die minimale Änderung, die Sie vornehmen müssen, um zu wechseln, welcher Browser geöffnet wird, wenn Sie auf einen Link klicken, besteht darin, den ProgIdWert unter dem UserChoiceUnterschlüssel für jedes Protokoll zu ändern, das Sie ändern möchten (wahrscheinlich httpund httpswird derselbe sein, aber wenn Sie aus irgendeinem Grund beide vornehmen möchten von denen, die in separaten Browsern geöffnet sind, könnten Sie).
Jetzt müssen Sie nur noch festlegen, was Sie für Firefox, IE und jeden anderen Browser verwenden möchten, zu dem Sie möglicherweise wechseln möchten. Wenn Sie dies programmgesteuert ermitteln möchten, können Sie dazu den CapabilitiesSchlüssel der Browserregistrierung eingeben, den Sie hier für Firefox finden:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet Hier werden alle Browser aufgelistet, und jeder sollte die obige Struktur haben.

Wenn ich zu Firefox wechseln würde, würde ich den FirefoxURLProgId-Wert verwenden, der in UrlAssociations gesichert wird.
(Wenn Sie jedoch nicht so herumgraben möchten, gibt es einen schnellen Trick: Legen Sie einfach den gewünschten Browser als Standard fest und aktualisieren Sie regedit, um zu sehen, was der Browser für das UserChoice! Eingestellt hat. )
Alles, was wir tun müssen, ist, diesen Schlüsselwert in zu ändern FirefoxURLund die Links jetzt in Firefox zu öffnen. Anschließend können Sie entweder auf einen Link klicken oder in der Systemsteuerung überprüfen, ob die richtige Standardeinstellung registriert ist:

Nun, wenn Sie genau aufgepasst haben, haben Sie vielleicht ein paar Fehler bei all dem bemerkt:
IE hat keinen URLAssociationsUnterschlüssel unter seiner StartMenuInternetBrowserregistrierung in. Woher kommt also der ProgId-Wert? Antwort: Ich weiß es nicht, zumindest nicht ohne weitere Nachforschungen. Möglicherweise ist es fest codiert oder in einem anderen Schlüssel enthalten, den ich noch nicht gefunden habe.
Firefox ProgId ist unter seinen URLAssociationssind FirefoxURL, aber wenn Sie auf in den Optionen im Browser selbst registrieren, verwendet es FirefoxHTMLals ProgId statt! Warum? Ich weiß es auch nicht. Beide funktionieren, weil beide existieren und auf Firefox verweisen. Vielleicht ist es beabsichtigt, aber wahrscheinlich ist es nur ein Fehler ohne Wirkung.
Was passiert, wenn kein UserChoiceStandardprogramm vorhanden ist? Antwort: Es wird die "reguläre" Dateizuordnung für das Protokoll verwendet (z. B. http). Dies wird an den Standard ProgId Orten wie Dateizuordnungen (gefunden HKCU\Software\Classes, HKLM\Software\Classesund die Aussicht auf HKCR). Zumindest setzt Chrome seine Informationen dort, denke ich, aber Firefox scheint dies zumindest in meinen Tests nicht zu tun.
Ich empfehle, wenn Sie dies zum Standardprogramm-Editor hinzufügen möchten, dies auf der UserVoice-Feedback-Seite dieser Anwendung vorzuschlagen und zu bewerten . Ich bin zuversichtlich, dass der Autor der Anwendung dieses Feedback beachtet, wenn er entscheidet, wie er seine Entwicklungszeit verbringen soll!