Oui, vous pouvez l'écrire avec une manipulation directe du registre.
La réponse courte
Copiez chacun des éléments suivants dans des .reg
fichiers (tels que firefox.reg
, chrome.reg
, ie.reg
) et de les exécuter lorsque vous voulez passer (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 réponse longue
Windows stocke le protocole standard par utilisateur Inscriptions par défaut sous la UrlAssociations
clé, disponible à l'adresse
HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAssociations
Comme pour les associations de fichiers, il peut exister un "programme par défaut" pour les liens. Il s'agit d'une sorte de terminologie jargon qui fait référence à la UserChoice
clé - il existe également un enregistrement de shell de type association de fichiers standard sous http
ProgId qui peut également être modifié, mais la configuration proximale pour les navigateurs se fait via les programmes par défaut (voir en bas pour un commentaire supplémentaire à ce sujet). ).
Ce dont je parle ici, c'est ce que vous changez lorsque vous accédez à 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 est déjà là. Dans cette capture d'écran, j'ai accédé à cette clé regedit.exe
et Chrome est mon navigateur par défaut, désigné par la ChromeHTML
valeur ProgId.
La modification minimale que vous devez effectuer pour changer le navigateur qui s'ouvre lorsque vous cliquez sur un lien consiste à modifier la ProgId
valeur sous la sous- UserChoice
clé de chaque protocole que vous souhaitez modifier (probablement http
et https
sera le même, mais si pour une raison quelconque vous vouliez effectuer chaque de ceux ouverts dans des navigateurs séparés, vous pourriez).
Il ne reste plus qu'à déterminer ce qu'il faut utiliser pour Firefox, IE et tout autre navigateur vers lequel vous voudrez peut-être basculer. Si vous vouliez le déterminer par programme, vous pouvez le faire en fouillant dans la Capabilities
clé d'enregistrement du navigateur, trouvée 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 répertoriés, et chacun doit avoir la structure ci-dessus.
Vous pouvez voir à l'inspection que si je voulais passer à Firefox, j'utiliserais la FirefoxURL
valeur ProgId dans UrlAssociations.
(Cependant, si vous ne vouliez pas fouiller comme ça, il y a une astuce rapide: définissez simplement le navigateur que vous voulez par défaut et actualisez regedit pour voir ce que le navigateur a défini pour le UserChoice
!)
Tout ce que nous devons faire est de changer cette valeur clé en FirefoxURL
, et maintenant les liens s'ouvrent dans Firefox. Après 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:
Maintenant, si vous avez prêté une attention particulière, vous avez peut-être remarqué quelques défauts avec tout cela:
IE n'a pas de URLAssociations
sous-clé sous son enregistrement dans le navigateur StartMenuInternet
, alors d'où vient la valeur ProgId? Réponse: Je ne sais pas, du moins pas sans plus de recherches. Il peut être codé en dur ou trouvé dans une autre clé que je n'ai pas encore trouvée.
ProgId de Firefox est en dessous de URLAssociations
sont FirefoxURL
, mais lorsque vous cliquez pour vous inscrire dans les options du navigateur lui - même, il utilise FirefoxHTML
comme ProgId à la place! Pourquoi? Encore une fois, je ne sais pas. Ils fonctionnent tous les deux parce qu'ils existent tous les deux et pointent vers Firefox. C'est peut-être intentionnel, mais c'est probablement juste un bug sans effet.
Que se passe-t-il en l'absence de UserChoice
programme par défaut? Réponse: l'association de fichiers "régulière" pour le protocole (par exemple, http
) est utilisée. Il se trouve aux endroits standards ProgId tout comme les associations de fichiers ( HKCU\Software\Classes
, HKLM\Software\Classes
et la vue sur HKCR
). Au moins, Chrome définit ses informations, je pense, mais Firefox ne semble pas le faire, du moins dans mes tests.
Je recommande que si vous souhaitez que cela soit ajouté à l'éditeur de programmes par défaut, vous devriez le suggérer et le voter sur la page de commentaires UserVoice de cette application . Je tiens à ce que l'auteur de l'application prenne en compte ces commentaires lorsqu'il décide comment passer son temps de développement!