Tak, możesz napisać skrypt za pomocą bezpośredniej manipulacji rejestrem.
Krótka odpowiedź
Skopiować każdy z wymienionych poniżej systemów w .regplikach (takich jak firefox.reg, chrome.reg, ie.reg) i uruchomić je, gdy chcesz przełącznika (lub skryptu z reg.exe).
W przeglądarce Firefox:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
W przypadku Chrome:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Dla IE9:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
Długa odpowiedź
System Windows przechowuje standardowy protokół dla poszczególnych użytkowników Domyślne rejestracje pod UrlAssociationskluczem, które można znaleźć pod adresem
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Podobnie jak w przypadku skojarzeń plików, może istnieć „Program domyślny” dla łączy. Jest to rodzaj terminologii żargonowej odwołującej się do UserChoiceklucza - istnieje również standardowa rejestracja powłoki przypominająca skojarzenie pliku w httpProgId, którą można również zmienić, ale konfiguracja proksymalna dla przeglądarek odbywa się za pomocą programów domyślnych (patrz dolny komentarz na ten temat ).
Mówię tutaj o tym, co zmieniasz, gdy idziesz do sekcji Domyślne programy w Panelu sterowania, aby ustawić przeglądarkę:

Aby skonfigurować to bezpośrednio w rejestrze, najpierw sprawdźmy, czy już tam jest. Na tym zrzucie ekranu nawigowałem do tego klucza regedit.exe, a Chrome jest moją domyślną przeglądarką, oznaczoną ChromeHTMLwartością ProgId.

Minimalną zmianą, którą musisz wprowadzić, aby przełączyć przeglądarkę, która otwiera się po kliknięciu łącza, jest zmiana ProgIdwartości pod UserChoicepodkluczem każdego protokołu, który chcesz zmienić (prawdopodobnie httpi httpsbędzie taki sam, ale jeśli z jakiegoś powodu chciałeś zrobić każdy z nich z tych otwartych w oddzielnych przeglądarkach, możesz).
Teraz jest tylko kwestia ustalenia, czego używać w przeglądarce Firefox, IE i każdej innej przeglądarce, na którą chcesz się przełączyć. Jeśli chcesz to ustalić programowo, możesz to zrobić, zagłębiając się w Capabilitiesklucz rejestracji przeglądarki, znaleziony tutaj dla przeglądarki Firefox:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet jest to miejsce, w którym wymienione są wszystkie przeglądarki, a każda z nich powinna mieć powyższą strukturę.

Z inspekcji widać, że gdybym chciał przejść na Firefoksa, FirefoxURLużyłbym wartości ProgId z powrotem w UrlAssociations.
(Jeśli jednak nie chcesz tak przekopać, możesz szybko oszukać: ustaw dowolną przeglądarkę jako domyślną i odśwież regedit, aby zobaczyć, co ustawiła przeglądarka UserChoice!)
Wszystko, co musimy zrobić, to zmienić tę kluczową wartość na FirefoxURL, a teraz linki otwierają się w Firefox. Po wykonaniu tej czynności możesz kliknąć link lub dwukrotnie sprawdzić w panelu sterowania, czy zarejestrowane jest właściwe ustawienie domyślne:

Teraz, jeśli uważnie obserwujesz, możesz zauważyć kilka wad tego wszystkiego:
IE nie ma URLAssociationspodklucza pod rejestracją przeglądarki StartMenuInternet, więc skąd pochodzi wartość ProgId? Odpowiedź: Nie wiem, przynajmniej nie bez dalszych badań. Może być zapisany na stałe lub znaleźć w innym kluczu, którego jeszcze nie znalazłem.
Firefoksa ProgId jest pod To URLAssociationssą FirefoxURL, ale po kliknięciu zarejestrować w opcji w samej przeglądarce, używa FirefoxHTMLjako PROGID zamiast! Czemu? Znowu nie wiem. Oba działają, ponieważ oba istnieją i wskazują Firefox. Może jest to celowe, ale prawdopodobnie jest to tylko błąd bez efektu.
Co się stanie, gdy nie będzie UserChoiceprogramu domyślnego? Odpowiedź: używane jest „zwykłe” skojarzenie pliku dla protokołu (np. http). Ten znajduje się w standardowych lokalizacjach PROGID podobnie jak skojarzenia plików ( HKCU\Software\Classes, HKLM\Software\Classes, a widok na HKCR). Myślę, że przynajmniej Chrome ustawia tam informacje, ale Firefox nie wydaje się, przynajmniej w moich testach.
Polecam, jeśli chcesz dodać to do Edytora programów domyślnych, powinieneś zasugerować i głosować na stronie opinii użytkowników tej aplikacji . Mam dobrą władzę, że autor aplikacji zwraca uwagę na tę informację zwrotną, decydując, jak spędzić czas na rozwoju!