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!
UserChoice
enregistrement des programmes par défaut, de sorte que les clés d'association de fichiers "standard" soient utilisées, comme indiqué au point # 3. Par exemple, regardez la valeur par défaut deHKEY_CLASSES_ROOT\http\shell\open\command
(Vous pouvez écrire cette même clé enHKEY_CURRENT_USER
tant qu'utilisateur standard, si cela est important). Cela devrait juste être une question de définition du chemin d'application et de la chaîne de paramètres dont votre navigateur a besoin (par exemple,-- %1
je pense pour Chrome)S'il y a quelqu'un d'autre qui a atterri sur cette réponse tout en cherchant à définir quelque chose de personnalisé comme gestionnaire de protocole par défaut dans Windows 10, je pense que je l'ai craqué.
L'autre réponse à cette question m'a rapproché de la
Clients\StartMenuInternet
clé, que je ne connaissais pas pour la configuration du navigateur par défaut dans Windows 7. Cependant, après avoir pratiquement dupliqué laStartMenuInternet
clé de Firefox , mon programme n'apparaissait toujours pas dans les paramètres app.Après avoir utilisé Revo Uninstaller pour démarrer une désinstallation de Firefox, l' annulation de la désinstallation de Firefox puis laisser Revo balayage pour les clés de registre des restes, j'ai trouvé une autre clé:
HKLM\SOFTWARE\RegisteredApplications
. Cela semble stocker tous les programmes enregistrés pour que Windows puisse être informé de leurs fonctionnalités.Donc, après avoir configuré la
StartMenuInternet
clé, ajoutez une cléHKLM\SOFTWARE\RegisteredApplications
pour pointer versSoftware\Clients\StartMenuInternet\YOURPROGRAM\Capabilities
- oui, exactement comme ça, en commençant parSoftware\
:Capture d'écran de regedit (je ne peux pas incorporer l'image avant d'avoir 10 répétitions ...)
la source
Pour que votre programme (YName.exe) soit considéré comme un navigateur, il doit être enregistré:
1) ... StartMenuInternet - comme décrit ci-dessus,
HKCU \ Software \ Clients \ StartMenuInternet \ YName \ Capabilities \ URLAssociations
http = YNameURL
https = YNameURL
2) HKCU \ Software \ RegisteredApplications - comme décrit ci-dessus:
YName = Software \ Clients \ StartMenuInternet \ YName \ Capabilities
3) Commande HKCU \ Software \ Classes \ YNameURL \ shell \ open \
@ = Path \ YName.exe
4) Commande HKCU \ Software \ Classes \ Applications \ YName.exe \ shell \ open \
@ = Path \ YName.exe
la source