Oui, vous pouvez le script avec une manipulation directe du registre.
La réponse courte
Copiez chacun des éléments suivants dans .reg
(tels que firefox.reg
, chrome.reg
, ie.reg
) et les exécuter quand vous voulez changer (ou, script avec reg.exe
).
Pour Firefox :
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="FirefoxURL"
Pour Chrome :
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="ChromeHTML"
Pour IE9 :
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice]
"ProgId"="IE.HTTP"
La longue réponse
Windows stocke les enregistrements par défaut du protocole standard pour chaque utilisateur sous le fichier UrlAssociations
qui se trouve à l'adresse
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Comme pour les associations de fichiers, il peut y avoir un "programme par défaut" pour les liens. Il s'agit d'une sorte de terminologie de jargon qui fait référence au UserChoice
il existe également un enregistrement de type association de fichiers standard Shell sous le nom de http
ProgId qui peut également peut être modifié, mais la configuration proximale pour les navigateurs est via les programmes par défaut (voir en bas de page pour un commentaire supplémentaire à ce sujet).
Ce dont je parle ici, c'est de ce que vous modifiez lorsque vous allez dans la section Programmes par défaut du Panneau de configuration pour définir un navigateur :
Pour configurer cela directement dans le registre, inspectons d'abord ce qui s'y trouve déjà. Dans cette capture d'écran, j'ai navigué jusqu'à cette clé dans la section regedit.exe
et Chrome est mon navigateur par défaut, désigné par le symbole ChromeHTML
Valeur ProgId.
La modification minimale à apporter pour changer le navigateur qui s'ouvre lorsque vous cliquez sur un lien consiste à modifier l'adresse de l'utilisateur. ProgId
en vertu de la UserChoice
sous-clé sur chaque protocole que vous voulez changer (probablement http
y https
seront les mêmes, mais si, pour une raison quelconque, vous vouliez que chacun d'entre eux s'ouvre dans des navigateurs distincts, vous le pourriez).
Il ne reste plus qu'à déterminer ce qu'il faut utiliser pour Firefox, IE et tout autre navigateur que vous souhaitez utiliser. Si vous vouliez déterminer cela de manière programmatique, vous pourriez le faire en fouillant dans le fichier Capabilities
de l'enregistrement du navigateur, que l'on trouve ici pour Firefox :
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet\FIREFOX.EXE\Capabilities\URLAssociations
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet
est l'endroit où tous les navigateurs sont listés, et chacun d'entre eux doit avoir la structure ci-dessus.
Vous pouvez voir d'après l'inspection que si je voulais passer à Firefox, j'utiliserais la fonction FirefoxURL
La valeur ProgId est remontée dans UrlAssociations.
(Cependant, si vous ne voulez pas creuser comme ça, il y a un moyen rapide de tricher : Définissez simplement le navigateur de votre choix comme navigateur par défaut, et actualisez regedit pour voir ce que le navigateur a défini pour l'attribut UserChoice
!)
Tout ce que nous devons faire est de changer la valeur de la clé en FirefoxURL
et les liens s'ouvrent maintenant dans Firefox. Après avoir fait cela, vous pouvez soit cliquer sur un lien, soit vérifier dans le panneau de configuration que la bonne valeur par défaut est enregistrée :
Si vous avez été attentif, vous avez peut-être remarqué quelques failles dans tout cela :
-
IE n'a pas de URLAssociations
sous son enregistrement de navigateur dans StartMenuInternet
alors d'où vient la valeur ProgId ? Réponse : Je ne le sais pas, du moins pas sans faire de recherches supplémentaires. Elle peut être codée en dur ou se trouver dans une autre clé que je n'ai pas encore trouvée.
-
Les ProgId's de Firefox sous ses URLAssociations
sont FirefoxURL
mais lorsque vous cliquez pour vous inscrire dans les options du navigateur lui-même, il utilise l'adresse suivante FirefoxHTML
comme ProgId à la place ! Pourquoi ? Encore une fois, je ne le sais pas. Les deux fonctionnent parce qu'ils existent tous les deux et pointent vers Firefox. Peut-être que c'est intentionnel, mais c'est probablement juste un bug sans effet.
-
Que se passe-t-il quand il n'y a pas UserChoice
Programme par défaut ? Réponse : l'association de fichiers "normale" pour le protocole (par ex, http
) est utilisé. Il se trouve à l'emplacement standard de ProgId, tout comme les associations de fichiers ( HKCU\Software\Classes
, HKLM\Software\Classes
et la vue à HKCR
). Au moins Chrome y place ses informations, je pense, mais Firefox ne semble pas le faire, du moins dans mes tests.
-
Je vous recommande, si vous voulez que cela soit ajouté à l'éditeur de programmes par défaut, de le suggérer et de l'approuver sur le site de cette application. Page de commentaires de UserVoice . Je sais de source sûre que l'auteur de l'application tient compte de ce retour d'information lorsqu'il décide de l'utilisation de son temps de développement !