PROFDINFO.COM

Votre enseignant d'informatique en ligne

Le registre de Windows - Réponses aux exercices

A) Exploration 
Les programmes pouvant être installés ont tous une clé dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall et chacune de ces clés contient une valeur "UninstallString" qui contient le chemin complet vers un programme de désinstallation.

B) Quelques opérations amusantes

Exercice 1
Fait disparaître la Corbeille.

On comprend que la clé HideDesktopIcons permet de cacher des icônes du bureau. La chaîne codée entre accolades doit correspondre à la Corbeille. La valeur est un dword, donc un nombre, ici sans doute utilisé comme un booléen. En le mettant à 1 (vrai), on confirme que la Corbeille est cachée. On fait la même chose pour les deux versions du menu Démarrer.

Exercice 2
Fait réapparaître la Corbeille.

On a la confirmation que la valeur dword était bel et bien un booléen. Quand on la met à 0 (faux), la Corbeille réapparait.

Exercice 3
Ajoute une coche "Afficher la poubelle sur le bureau" dans Outils->Options des dossiers->Affichage.

On constate que la base de registres nous permet carrément de modifier l'interface de Windows, pas seulement sa configuration.

Exercice 4
Efface les Documents Récents du menu Démarrer.

Concrètement, il efface la clé RecentDocs, qui contient une valeur pour chaque document récent (avec son chemin comme donnée).  

Exercice 5 
- Trouver la clé
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
- Ajouter la valeur
"ClearMRU"="regedit /s C:\\ex4.reg"
Évidemment, le chemin vers le fichier ex4.reg peut varier.  On a le choix entre mettre le chemin entre guillemets ou doubler les backslashes.  Notez qu'il est plus simple de doubler les backslashes puisque la donnée est déjà entre guillemets.  Optionnellement dans ce cas, on peut mettre le chemin entre \" (des guillemets précédés d'un backslash).

Exercice 6 
Donne le nom "%username%'s Computer" à l'icône "Poste de travail", en remplaçant bien sûr %username% par sa valeur (pour obtenir par exemple "George's Computer").

L'explication:
Les nombres hexadécimaux

25,00,55,00,53,00,45,00,52,00,4e,00,41,00,4d,00,45,00,25,00,27,00,73,00,20,00,
43,00,6f,00,6d,00,70,00,75,00,74,00,65,00,72,00,00,00

équivalent en décimal à:

37,0,85,0,83,0,69,0,82,0,78,0,65,0,77,0,69,0,37,0,39,0,115,0,32,0,67,0,111,0,
109,0,112,0,117,0,116,0,101,0,114,0,0,0

Ces nombres représentent des caractères selon la norme Unicode (d'où les 0 intercalés après chaque nombre – les 256 premiers caractères Unicode ont gardé le même nombre que leur code ASCII, mais sur deux octets).  Ceci équivaut donc à:

%,u,s,e,r,n,a,m,e,%,',s,[espace],C,o,m,p,u,t,e,r[caractère 0 = fin de ligne]

donc à la chaîne:

%username%'s Computer

Et hex(2) représente le type REG_EXPAND_SZ, ce qui nous assure que la variable %USERNAME% sera remplacée par sa valeur avant que la chaîne soit utilisée...

Exercice 7
Au départ, modifie le nom du Poste de travail (mais d'une façon différente que l'exercice 6 puisqu'on utilise maintenant une simple chaîne sans variable), puis ajoute en plus une commande au menu contextuel du Poste de travail.  La commande s'appelle "Éditeur de registre" et elle démarre bel et bien regedit.

L'explication
Chaque élément standard de Windows a une clé qui le représente.  Ces clés sont toutes sous HKEY_CLASSES_ROOT\CLSID et portent toutes un long numéro hexadécimal.  Sous chacune de ces clés, on trouve plusieurs valeurs qui permettent de modifier les noms, les icônes et certains comportements de chacun de ces éléments.

Par exemple, la sous-clé "shell" de l'élément "Poste de travail" contiendra une clé pour chaque commande qu'il est possible d'exécuter sur le poste (par défaut on trouvera "Gérer" et "Rechercher".)

Les différents éléments standards de Windows et leurs clés sont:

Control Panel
HKEY_CLASSES_ROOT\CLSID\{21EC2020-3AEA-1069-A2DD-08002B30309D}

My Documents
HKEY_CLASSES_ROOT\CLSID\{450D8FBA-AD25-11D0-98A8-0800361B1103}

Dial Up/Network
HKEY_CLASSES_ROOT\CLSID\{7007ACC7-3202-11D1-AAD2-00805FC1270E}

Web Folders
HKEY_CLASSES_ROOT\CLSID\{BDEADF00-C265-11d0-BCED-00A0C90AB50F}

Printers
HKEY_CLASSES_ROOT\CLSID\{2227A280-3AEA-1069-A2DE-08002B30309D}

Network Places
HKEY_CLASSES_ROOT\CLSID\{208D2C60-3AEA-1069-A2D7-08002B30309D}

My Computer
HKEY_CLASSES_ROOT\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}

Outlook
HKEY_CLASSES_ROOT\CLSID\{00020D75-0000-0000-C000-000000000046}

De plus, on sait que chaque clé possède une valeur "(par défaut)".  Pour modifier la valeur "(par défaut)" d'une clé à partir d'un fichier .reg, il suffit d'utiliser le nom de valeur "@" (sans les guillemets), comme on le voit dans l'exercice 07.

Dans la sous-clé "shell", chaque sous-clé représentera une action possible.  La valeur par défaut de l'action sera le nom qui apparaîtra dans le menu contextuel.  Pour chaque action, une sous-clé "command" définira (également par sa valeur par défaut), la commande à exécuter.

Exercice 8 
Maintenant, Windows nous affiche la fenêtre de choix du programme pour ouvrir le fichier A.XYZ et ne nous demande plus d'aller sur l'Internet pour le trouver.  On aurait pu créer le fichier EX8.reg suivant pour arriver au même résultat:

 

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"NoInternetOpenWith"=dword:00000001

(n'oublions pas qu'un dword contient huit positions, en hexadécimal.  Comme un octet en hexadécimal est représenté sur 2 positions (de 00 à FF – donc de 0 à 255), on a bel et bien 4 octets pour un dword.)

Pour revenir à l'état initial, il nous suffit de détruire la valeur qu'on vient de créer.

Si on avait utilisé le script pour modifier l'usager courant plutôt que l'ordinateur, ça aurait fait le même effet pour l'usager en cours. Dans les deux cas, on ajoute une valeur quelque part sous Software\Microsoft\Windows\CurrentVersion, mais la clé exacte n'est pas la même. La valeur elle-même est opposée: NoInternetOpenWith dans un cas et InternetOpenWith dans l'autre (d'où la donnée qui sera 1 dans un cas et 0 dans l'autre!).

Exercice 9 
Voici le fichier ex9.reg qui fait le travail:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="Lancer CMD ici"
[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /k cd \"%L\""

Il suffit de suivre les indications de l'énoncé.  Ce qu'il ne faut toutefois pas oublier (et c'est là la difficulté de la chose):

  1. pour placer un guillemet dans une valeur à partir d'un fichier .reg, il faut préfixer le guillemet d'un backslash pour éviter les problèmes de syntaxe.
  2. %L est une pseudo-variable sympathique qui contient le chemin vers le répertoire courant de l'explorateur Windows.
  3. on utilisera le même principe que pour l'Exercice 7, une sous-clé identifiant le texte du menu (par la valeur par défaut) et une sous-clé à cette sous-clé identifiant la commande (toujours par la valeur par défaut).

Exercice 10
Voici le fichier qui fait le travail:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer] "MaxRecentDocs"=dword:00000020

Exercice 11 
Il suffit d'ajouter une valeur à une clé:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Mouse] "MouseTrails"="7"

Bizarrement, même si la valeur MouseTrails contient des nombres, on utilise tout de même une chaîne de caractères.  On peut aller de 0 (aucune trace) à 7 (longues traces) en passant par 1 (traces courtes).  Pour que l'effet soit pris en compte, il faut au moins fermer la session et la rouvrir.

Exercice 12
Cette valeur contrôle le temps (en millisecondes) attendu par Windows avant d'afficher un menu lorsque le pointeur de souris passe dessus.  Mettez la valeur à 1 et promenez-vous dans votre menu Démarrer, on dirait que votre ordinateur est devenu super performant!