26 votes

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

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

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

37voto

roryf Points 14520

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 :

Default Programs for Protocols in the Control Panel

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.

Navigating to the UrlAssociations subkey in regedit

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.

Navigating to the Capabilities key in regedit

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 :

Double checking the default program in the Control Panel

Si vous avez été attentif, vous avez peut-être remarqué quelques failles dans tout cela :

  1. 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.

  2. 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.

  3. 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.

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

0voto

admbot Points 11

L'affichage parce que c'est encore pertinent aujourd'hui sur Windows 10.

Je vois d'autres réponses qui parlent du registre. C'est pratique et tout mais c'est très pénible à faire à la main. C'est pourquoi je veux soumettre ma propre configuration du registre (au bas de cette réponse) qui vous débarrasse de tout ce que vous devez faire vous-même ! J'ai créé celle-ci parce que je voulais utiliser le navigateur "Ungoogled Chromium" par défaut mais il n'y avait pas d'installateur approprié disponible pour ajouter l'application à la liste des navigateurs disponibles.

Enregistrez le fichier .reg sur votre PC, puis effectuez les étapes suivantes :

  • Modifiez le chemin dans le fichier .reg pour qu'il corresponde à celui de votre propre application. Le mien est " C:\Program Fichiers \Ungoogled Chrome \chrome.exe "(Extrait du fichier fichier .reg). Assurez-vous qu'il est correctement échappé !
  • Importez le fichier .reg.
  • En option : Placez un raccourci dans %Appdata%/Roaming/Microsoft/Windows/Menu de démarrage/Programmes pointant vers votre navigateur.

Le seul problème que j'ai est que, pour une raison quelconque, Chromium continue à dire qu'il n'est pas le navigateur par défaut, même après l'avoir fait. Après avoir installé Chrome et être revenu à Chromium, le message avait disparu. Il revient après avoir basculé vers IE, puis vers Chromium. Je ne sais pas pourquoi malheureusement, mais il suffit de désactiver l'avertissement. Il semble que tout fonctionne bien.

Après avoir importé correctement le fichier de registre, le navigateur apparaîtra dans la liste des applications à choisir. Liste des applications par défaut

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities]
"ApplicationDescription"="Chromium without Google's phone home."
"ApplicationIcon"="\"C:\\Program Files\\Ungoogled Chromium\\chrome.exe\",0"
"ApplicationName"="Ungoogled Chromium"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\DefaultIcon]
@="C:\\Program Files\\Ungoogled Chromium\\chrome.exe,0"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\FileAssociations]
".crx"="UngoogledChromium"
".htm"="UngoogledChromium"
".html"="UngoogledChromium"
".nex"="UngoogledChromium"
".pdf"="UngoogledChromium"
".shtml"="UngoogledChromium"
".xht"="UngoogledChromium"
".xhtml"="UngoogledChromium"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\Startmenu]
"StartMenuInternet"="UngoogledChromium"

[HKEY_CURRENT_USER\Software\Clients\StartMenuInternet\UngoogledChromium\Capabilities\UrlAssociations]
"http"="UngoogledChromium"
"https"="UngoogledChromium"
"ftp"="UngoogledChromium"
"mailto"="UngoogledChromium"

[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium]
"FriendlyTypeName"="Chromium Web Document"
"URL Protocol"=""

[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\DefaultIcon]
@="C:\\Program Files\\Ungoogled Chromium\\chrome.exe,0"

[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\shell]

[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\shell\open]

[HKEY_CURRENT_USER\Software\Classes\UngoogledChromium\shell\open\command]
@="\"C:\\Program Files\\Ungoogled Chromium\\chrome.exe\" -- \"%1\""

-1voto

Walkman Points 11

Si quelqu'un d'autre est tombé sur cette réponse en cherchant à définir quelque chose de personnalisé comme gestionnaire de protocole par défaut dans Windows 10, je pense que j'ai trouvé la solution.

L'autre réponse à cette question m'a permis de faire un pas de plus avec la Clients\StartMenuInternet que je ne connaissais pas pour définir le navigateur par défaut dans Windows 7. Cependant, après avoir à peu près reproduit la procédure de Firefox, j'ai trouvé une solution. StartMenuInternet mais mon programme n'apparaissait toujours pas dans l'application Paramètres.

Après avoir utilisé Revo Uninstaller pour lancer une désinstallation de firefox, annulé la désinstallation de firefox puis laissé Revo analyser les clés de registre restantes, j'ai trouvé une autre clé : HKLM\SOFTWARE\RegisteredApplications . Cela semble stocker tous les programmes enregistrés afin que Windows puisse être informé de leur fonctionnalité.

Donc, après avoir mis en place le StartMenuInternet ajouter une clé dans HKLM\SOFTWARE\RegisteredApplications pour 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 intégrer l'image tant que je n'ai pas 10 rep...)

-1voto

Andrey Arov Points 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=Les logiciels \Clients\StartMenuInternet\YName\Capabilities

3) HKCU \Software\Classes\YNameURL\<strkeep>Shell<strkeep>\open\command

@=Path \YName.exe

4) HKCU \Software\Classes\Applications\YName.exe\<strkeep>Shell<strkeep>\open\command

@=Path \YName.exe


SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X