Comment changer mon navigateur par défaut en un programme non répertorié dans Windows 7?

25

J'utilise plusieurs navigateurs régulièrement, j'ai donc écrit un script qui ouvrira des pages dans le navigateur déjà en cours d'exécution (ou Firefox s'il n'y en a pas). Je veux définir ce script comme navigateur par défaut. Lorsque je vais dans la boîte de dialogue "Définir les associations", sélectionnez HTTP et cliquez sur "Modifier le programme", la boîte de dialogue qui s'affiche ne me permet pas de sélectionner quoi que ce soit, sauf l'un des navigateurs Web que j'ai déjà installés. Cela semble être le cas pour tous les protocoles (par opposition aux extensions de fichier, qui vous permettent de choisir parmi "Autres programmes" ou de rechercher un programme qui n'est pas répertorié). L'aide de Windows ne dit rien à ce sujet et dit simplement d'utiliser le bouton "Parcourir ...", qui n'est pas disponible. J'ai même essayé l'éditeur de programmes par défaut tiers, mais il ne semble pas pouvoir le faire.

Existe-t-il un moyen de définir manuellement mon script par défaut (peut-être en modifiant le registre)?

Morgan May
la source

Réponses:

36

Oui, vous pouvez l'écrire avec une manipulation directe du registre.

La réponse courte

Copiez chacun des éléments suivants dans des .regfichiers (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 UrlAssociationsclé, 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 UserChoiceclé - il existe également un enregistrement de shell de type association de fichiers standard sous httpProgId 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:

Programmes par défaut pour les protocoles dans le panneau de configuration

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.exeet Chrome est mon navigateur par défaut, désigné par la ChromeHTMLvaleur ProgId.

Navigation vers la sous-clé UrlAssociations dans regedit

La modification minimale que vous devez effectuer pour changer le navigateur qui s'ouvre lorsque vous cliquez sur un lien consiste à modifier la ProgIdvaleur sous la sous- UserChoiceclé de chaque protocole que vous souhaitez modifier (probablement httpet httpssera 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 Capabilitiesclé 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.

Navigation vers la clé Capabilities dans regedit

Vous pouvez voir à l'inspection que si je voulais passer à Firefox, j'utiliserais la FirefoxURLvaleur 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:

Double vérification du programme par défaut dans le Panneau de configuration

Maintenant, si vous avez prêté une attention particulière, vous avez peut-être remarqué quelques défauts avec tout cela:

  1. IE n'a pas de URLAssociationssous-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.

  2. ProgId de Firefox est en dessous de URLAssociationssont FirefoxURL, mais lorsque vous cliquez pour vous inscrire dans les options du navigateur lui - même, il utilise FirefoxHTMLcomme 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.

  3. Que se passe-t-il en l'absence de UserChoiceprogramme 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\Classeset 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.

  4. 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!

Facteur mystique
la source
2
Merci pour la réponse détaillée. Que ferais-je si je voulais définir autre chose qu'un des navigateurs installés comme gestionnaire HTTP par défaut? Est-il même possible de le configurer pour utiliser quelque chose qui n'a pas déjà été installé dans le registre? Ou devrai-je créer une entrée de registre pour mon script?
Morgan
2
@MorganMay Ce que vous devez faire est de supprimer l' UserChoiceenregistrement 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 de HKEY_CLASSES_ROOT\http\shell\open\command(Vous pouvez écrire cette même clé en HKEY_CURRENT_USERtant 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, -- %1je pense pour Chrome)
Factor Mystic
1
Content d'avoir lu jusqu'à la fin. La combinaison de la suppression des entrées ProgId, puis de la définition du gestionnaire "par défaut" dans la commande HKCR \ http \ shell \ open \
Brent
-1

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\StartMenuInternetclé, que je ne connaissais pas pour la configuration du navigateur par défaut dans Windows 7. Cependant, après avoir pratiquement dupliqué la StartMenuInternetclé 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 StartMenuInternetclé, ajoutez une clé HKLM\SOFTWARE\RegisteredApplicationspour pointer vers Software\Clients\StartMenuInternet\YOURPROGRAM\Capabilities- oui, exactement comme ça, en commençant par Software\:

Capture d'écran de regedit (je ne peux pas incorporer l'image avant d'avoir 10 répétitions ...)

Baladeur
la source
-1

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


Andrey Arov
la source
1
Bienvenue sur Super User ! Veuillez noter que les réponses doivent être en anglais (entièrement).
Glorfindel
(1)  Super User est un site en anglais uniquement. Veuillez supprimer les parties de votre réponse qui ne sont pas en anglais. (2) Chaque réponse doit pouvoir se tenir (avoir un sens) par elle-même. Ce n'est pas le cas. Les réponses ne doivent pas dire «comme décrit ci-dessus» en référence à d'autres réponses. Veuillez l' éditer pour qu'il ait un sens en soi. Il est possible de copier des parties d'autres réponses tant que vous accordez du crédit. (3) La plupart de ce que cela dit semble avoir déjà été dit. Veuillez indiquer clairement les nouvelles informations que vous ajoutez.
Scott