Sì, puoi copiarlo con la manipolazione diretta del registro.
La risposta breve
Copiare ciascuno dei seguenti nei .regfile (ad esempio firefox.reg, chrome.reg, ie.reg) ed eseguire quando si desidera passare (o, script con reg.exe).
Per Firefox:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Per Chrome:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Per IE9:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
La lunga risposta
Windows archivia le registrazioni predefinite del protocollo standard per utente sotto la UrlAssociationschiave, disponibile all'indirizzo
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Simile alle associazioni di file, può esserci un "Programma predefinito" per i collegamenti. Questa è una sorta di terminologia gergale che fa riferimento alla UserChoicechiave: esiste anche una registrazione shell simile a un'associazione di file standard sotto httpProgId che può anche essere cambiata, ma la configurazione prossimale per i browser è tramite Programmi predefiniti (vedi sotto per un commento aggiuntivo su questo ).
Quello di cui sto parlando qui è ciò che stai cambiando quando vai nella sezione Programmi predefiniti del Pannello di controllo per impostare un browser:

Per configurarlo direttamente nel registro, per prima cosa controlliamo che sia già lì. In questa schermata sono passato a quella chiave regedit.exee Chrome è il mio browser predefinito, designato dal ChromeHTMLvalore ProgId.

La modifica minima che è necessario apportare per cambiare il browser che si apre quando si fa clic su un collegamento è modificare il ProgIdvalore sotto la UserChoicesottochiave su ciascun protocollo che si desidera modificare (probabilmente httpe httpssarà lo stesso, ma se per qualche motivo si volesse effettuare ciascuno di quelli aperti in browser separati, potresti).
Ora è solo una questione di determinare cosa usare per Firefox, IE e qualsiasi altro browser a cui potresti voler passare. Se desideri determinarlo a livello di codice, puoi farlo scavando nella Capabilitieschiave della registrazione del browser, disponibile qui per Firefox:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet è dove sono elencati tutti i browser e ognuno dovrebbe avere la struttura sopra.

FirefoxURLDall'ispezione si può vedere che se volessi passare a Firefox, utilizzerei il backup del valore ProgId in UrlAssociations.
(Tuttavia, se non volevi scavare in questo modo, c'è un trucco veloce: basta impostare qualsiasi browser che desideri come predefinito e aggiornare regedit per vedere cosa ha impostato il browser per UserChoice!)
Tutto quello che dobbiamo fare è cambiare quel valore chiave in FirefoxURL, e ora i collegamenti si aprono in Firefox. Dopo averlo fatto, puoi fare clic su un collegamento o ricontrollare nel pannello di controllo che sia registrato il valore predefinito corretto:

Ora, se hai prestato molta attenzione, potresti aver notato un paio di difetti con tutto questo:
IE non ha una URLAssociationssottochiave sotto la sua registrazione nel browser StartMenuInternet, quindi da dove proviene il valore ProgId? Risposta: non lo so, almeno non senza ulteriori ricerche. Potrebbe essere codificato o trovato in un'altra chiave che non ho ancora trovato.
ProgId di Firefox è sotto di essa la URLAssociationssono FirefoxURL, ma quando si fa clic per registrarsi nelle opzioni del browser stesso, utilizza FirefoxHTMLcome il ProgId invece! Perché? Ancora una volta, non lo so. Entrambi funzionano perché esistono entrambi e puntano a Firefox. Forse è intenzionale, ma probabilmente è solo un bug senza alcun effetto.
Cosa succede quando non esiste un UserChoiceprogramma predefinito? Risposta: httpviene utilizzata l' associazione di file "regolare" per il protocollo (ad es. ). Questo si trova nelle posizioni ProgId standard, proprio come le associazioni di file ( HKCU\Software\Classes, HKLM\Software\Classes, e la vista HKCR). Almeno Chrome imposta le informazioni lì, penso, ma Firefox non sembra, almeno nei miei test.
Se si desidera aggiungere questo all'editor di programmi predefiniti, è consigliabile suggerirlo e votarlo nella pagina Feedback di UserVoice dell'applicazione . Ho una buona autorità che l'autore dell'applicazione presta attenzione a quel feedback quando decide come trascorrere il suo tempo di sviluppo!