Les Objets Shell

Les Objets Shell sont définis dans le Registre. Nous en connaissons quelques-uns :

 

Il arrive qu'un Objet soit ajouté par un programme sur le Bureau ou dans Poste de Travail.
Il est possible de créer de tels Objets, par exemple d'ajouter un dossier dans Poste de Travail.
Toute manipulation du Registre devrait être précédée de sa
sauvegarde

 

 

 

Les Objets basiques du Bureau

Ces alias peuvent être supprimés à volonté via les propriétés de l'Affichage en faisant un clic droit sur le Bureau. Sur XPPRO, l'icône Internet Explorer a une coche :

Restrictions d'affichage des icônes du Bureau

Il est possible de rendre impossible leur affichage grâce à leurs CLSID et à la clé NonEnum :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum

{20D04FE0-3AEA-1069-A2D8-08002B30309D}  

 Poste de Travail

{450D8FBA-AD25-11D0-98A8-0800361B1103}  

 Mes Documents

{645FF040-5081-101B-9F08-00AA002F954E}  

 Corbeille

{871C5380-42A0-1069-A2EA-08002B30309D}  

 Internet Explorer

L'objet {871C5380-42A0-1069-A2EA-08002B30309D} n'est normalement pas présent sous cette clé, je l'ai ajouté pour tester. On verra plus loin qu'il existe une restriction spéciale pour IE.

Suite à l'application de la restriction pour Mes Documents et Internet Explorer, leurs items sont grisés dans les Propriétés de l'Affichage (clic droit sur l'écran) :

La coche pour Internet Explorer n'existe pas sur XPHOME :

Pour l'icône d'Internet Explorer il existe une stratégie NoInternetIcon. Elle est listée dans la Console Stratégie de groupe (XPPRO seulement : Démarrer>Exécuter>gpedit.msc)

GPEDIT.MSC n'étant pas livré avec XPHOME, il faudra créer cette restriction avec Regedit en créant la valeur DWORD NoInternetIcon :

HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoInternetIcon = 1

L'opération peut être réalisée en fusionnant le fichier noieicon.reg à télécharger chez Kelly : 102. Hide IE Icon from the Desktop Toolbar

Ceux qui sont intéressés par GPEDIT.MSC peuvent l'installer sur XPHOME : www.bellamyjc.org/fr/strategie.html#GPEDIT

Complément
Une autre restriction existe, signalée dans cet article :
La coche Internet Explorer est absente de la Personnalisation du Bureau suite à l'installation de la version Quick Fix Engineering du correctif MS07-061
http://support.microsoft.com/kb/945402/en
http://support.microsoft.com/kb/945402/fr
Les clés concernées sont :
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu
Comme vu précédemment, on reconnait le CLSID de IE qu'il faut mettre à zéro :
{871C5380-42A0-1069-A2EA-08002B30309D}=0
{871C5380-42A0-1069-A2EA-08002B30309D}=1 fait disparaitre immédiatement l'icône du Bureau (F5 pour rafraichir l'affichage)
 

 

 

 

Les CLSID

Pour Windows tout est Objet.
CLSID veut dire CLASS IDENTIFIER. Ils sont définis dans la branche HKCR à la clé HKEY_CLASSES_ROOT\CLSID
Ces centaines de sous-clés définissent les propriétés de toutes sortes d'Objets, et sont installés aussi bien par le système que par des programmes.

Les plus connus sont :

{1F4DE370-D627-11D1-BA4F-00A0C91EEDBA}

 Résultats de la recherche - Ordinateurs

{208D2C60-3AEA-1069-A2D7-08002B30309D}

 Favoris réseau

{20D04FE0-3AEA-1069-A2D8-08002B30309D}

 Poste de travail

{2227A280-3AEA-1069-A2DE-08002B30309D}

 Imprimantes et télécopieurs

{450D8FBA-AD25-11D0-98A8-0800361B1103}

 Mes documents

{645FF040-5081-101B-9F08-00AA002F954E}

 Corbeille

{7007ACC7-3202-11D1-AAD2-00805FC1270E}

 Connexions réseau

{D6277990-4C6A-11CF-8D87-00AA0060F5BF}

 Tâches planifiées

Explorer peut afficher certains Objets (syntaxe) :

Démarrer>Exécuter>explorer ::{2227A280-3AEA-1069-A2DE-08002B30309D}
ouvrira "Imprimantes et télécopieurs".

Autre exemple avec le Panneau de Configuration :
Explorer /root,,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\::{21EC2020-3AEA-1069-A2DD-08002B30309D}

C'était pour le fun, Exécuter>control  est bien plus simple.

Quelques liens sur les CLSID
CLSID et Globally Unique Identifier
Globally Unique Identifier (anglais)
Globally Unique Identifier (français)
Qu'est-ce qu'un GUID et un UUID ?
Quel est l'intérêt des GUID ?
Création d'extensions du shell avec des objets instance du shell
Create Global Unique Identifiers (GUIDs) online
CoCreateGuid : Creates a GUID, a unique 128-bit integer used for CLSIDs and interface identifiers

Voyons à présent comment utiliser ces CLSID pour gérer des Objets sur le Bureau, puis dans Poste de Travail :
 

 

Suppression d'un Objet insolite sur le Bureau

Un objet non identifié se trouve sur le Bureau, inerte et impossible à supprimer. De tels objets peuvent aussi exister dans Poste de Travail. Ils peuvent ou non avoir une icône. Voici deux exemples :

L'affichage de ces objets est défini dans le Registre sous les clés NameSpace. Desktop pour le Bureau, et  MyComputer pour le Poste de Travail:

C'est ainsi que le système sait ce qu'il doit afficher sur le Bureau ou le Poste de Travail.
On trouve par exemple dans Desktop\NameSpace l'objet {645FF040-5081-101B-9F08-00AA002F954E} qui n'est autre que la Corbeille.

Les Propriétés de chaque Objet sont définies par son CLSID, dont le contenu détermine si l'Objet est déplaçable, supprimable, renommable, l'action par défaut (clic gauche) et son menu contextuel (clic droit).

Pour supprimer un Objet indésirable il suffit de mettre un signe moins (-) devant l'accolade du nom CLSID de la clé dans NameSpace.
Voici un exemple avec l'Objet "Gestionnaire de fichiers Sony Ericcson"





Suppression de l'affichage sur le Bureau de l'Objet "Gestionnaire de fichiers Sony Ericcson"

 

Ceux qui ont un téléphone portable de cette marque et ont installé le logiciel livré avec l'appareil constatent qu'une icône  Gestionnaire de fichiers Sony Ericcson est incrustée sur le Bureau. Comme elle fait double-emploi avec les raccourcis disponibles dans le Menu Démarrer on est tenté de la retirer. Mais surprise, ce n'est pas un simple raccourci LNK, c'est un Objet Shell impossible à supprimer.

Le remède consiste à repérer la clé sous Desktop\NameSpace puis à renommer le CLSID en ajoutant un signe moins (-) au début comme indiqué :

Faire F5 sur le Bureau : l'Objet n'est plus là. C'est réversible en enlevant le caractère ajouté.

C'est le fait d'avoir renommé la clé en ajoutant un (ou plusieurs) caractère devant son nom qui détermine si l'Objet est affiché ou non. On peut très bien mettre un signe +, le signe moins est une convention. Renommer la clé en ajoutant un commentaire à la suite de son nom ne produit pas l'effet escompté.

Renommer autrement la clé entrainerait l'affichage d'un Objet indéfini. On peut faire l'expérience en ajoutant une clé quelconque sous Desktop\NameSpace, en calquant son nom sur une des clés présentes.

Si on choisit par exemple {645FF040-5081-101B-9F08-00AA002F954E} qui est le CLSID de la Corbeille pour créer la nouvelle clé {645FF040-5081-101B-9F08-00AA002F9540} avec le dernier caractère modifié.

Après rafraichissement du Bureau (F5), une nouvelle icône indéfinie apparaît. Sa suppression est possible car elle n'a aucune Propriété définie. Un coup de F5 dans Regedit montre alors que la nouvelle clé a été effacée en même temps que son icône.

 

Le coup du dossier qui revient au démarrage

Ce n'est pas un Objet Shell, mais cet aparté peut être utile. Il arrive que l'on utilise une fonction d'un logiciel qui crée un dossier de fonctionnement. On a du mal ensuite à faire la relation avec ce %?$£ de dossier sur le Bureau qui revient à chaque démarrage malgré sa suppression et le logiciel utilisé. Voici un exemple avec WMP (Windows Media Player) après son utilisation pour extraire de la musique ==> Outils/Options/Onglet "Extraire de la musique"

 

Ajouter un Objet Shell sur le Bureau

Il est très facile d'ajouter un Objet prédéfini sur le Bureau. Il suffit de connaître son CLSID.
Pour ajouter l'Objet "Exécuter" sur le Bureau on ajoute la clé : {2559A1F3-21D7-11D4-BDAF-00C04F60B9F0} sous Desktop\NameSpace ==>

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{2559A1F3-21D7-11D4-BDAF-00C04F60B9F0}

Après F5 l'icône Exécuter est sur le Bureau :
  
Remarquer que l'icône n'a pas de flèche de raccourci comme lorsqu'on fait glisser l'icône Exécuter depuis le Menu Démarrer vers le Bureau.

Son Menu Contextuel est des plus réduit :

L'icône est déplaçable sur le Bureau, mais n'est pas déplaçable ailleurs. C'est alors un raccourci qui est créé. On ne peut pas la supprimer. Les propriétés de ce raccourci montrent la Cible en grisé, comme pour les raccourcis des programmes de la suite Office.

Pratique : créer un raccourci dans la Barre de Lancement Rapide, et faire en sorte que l'icône reste toujours visible à côté du Bouton Démarrer ==>

Rappel : WIN+R affiche également la Boîte Exécuter.
(WIN = touche Windows à gauche de la Barre espace, entre CTL et ALT)

 

 

Ajouter un dossier dans Poste de Travail

Il est très facile d'ajouter un Dossier Shell dans Poste de Travail et/ou sur le Bureau, alias d'un dossier réel du disque dur.
On utilise pour cela l'excellent Shell Object Editor à télécharger chez Gratilog (Personnalisation).

Comme chaque fois qu'on touche au Registre, on fera une sauvegarde de celui-ci.

Démarrer Shell Object Editor. Un clic droit permet de passer en Mode expert :

Le Mode expert affiche les Objets connus du Shell Explorer :

Créer un nouvel Objet : ici un Dossier Shell dont la cible sera c:\Windows\System32 :

On désigne la cible à l'étape 2. Noter la possibilité de créer un Objet Programme :

Choisir l'icône :

Indiquer si l'Objet sera disponible pour Tous les Utilisateurs, ou seulement pour l'utilisateur actuel, ainsi que les endroits où l'icône sera affichée  :

C'est terminé :

Passer en Mode Expert, le nouvel Objet est listé avec les autres :

Cliquer sur le Bureau et appuyer sur la touche F5, l'icône SYSTEM32 apparaît.
Le Poste de Travail montre l'icône à gauche et à droite. Remarquer que l'icône du Bureau est listée comme l'est celle de la Corbeille :

 

Un examen du Registre permet de lister les modifications effectuées. On peut en déduire un fichier REG qu'il serait possible d'utiliser pour créer l'Objet rapidement sur plusieurs PC :

 

Windows Registry Editor Version 5.00

;DOSSIER SHELL SYSTEM32
;Installe dans Poste de Travail et sur le Bureau une icône SYSTEM32

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}]
@="SYSTEM32"
"{305ca226-d286-468e-b848-2b2e8e697b74} 2"=dword:ffffffff

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}\DefaultIcon]
@="%SYSTEMROOT%\\system32\\shell32.dll,219"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}\InProcServer32]
@="shdocvw.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}\Instance]
"CLSID"="{0afaced1-e828-11d1-9187-b532f1e9575d}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}\Instance\InitPropertyBag]
"Attributes"=dword:00000015
"Target"="%SYSTEMROOT%\\SYSTEM32"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}\ShellFolder]
"Attributes"=dword:f8000100
"WantsFORPARSING"=""




;Affichage dans Poste de Travail
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}]

;Affichage sur le Bureau
;Renommer en   NameSpace\-{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}
;pour enlever l'icône du Bureau
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{f5ed2485-11be-4ee2-8cb7-963bcb2ad3e0}]


 

Les Objets Documents partagés et Documents de ne sont pas affichés dans Poste de Travail

 

Solution 1

Télécharger TweakUI en français chez Ninou.
Dans TweakUI aller à Poste de Travail.
Dans la partie droite, "Icônes du Poste de travail" ==>
Cocher "Fichiers stockés sur cet ordinateur"

Lorsque "Fichiers stockés sur cet ordinateur" est décoché, une valeur NoSharedDocuments est créée dans la clé  HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer avec pour valeur 1 qui active la restriction.

En cochant "Fichiers stockés sur cet ordinateur" la valeur est mise à zéro, la restriction est levée et  Documents partagés et Documents de sont affichés :

Remarque : Mes dossiers de partage n'est pas concerné (partages de MSN Messenger)

Pour info il existe une autre façon de ne pas afficher ces dossiers dans Poste de Travail :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders
Renommer la clé {59031a47-3f72-44a7-89c5-5595fe6b30ee} en
-{59031a47-3f72-44a7-89c5-5595fe6b30ee}
En images ici.

 

Solution 2

Il se peut que l'absence des "Documents de" dans Poste de Travail ne soit pas le résultat d'une Restriction comme ci-dessus. Dans ce cas TweakUI n'aide pas car l'item "Fichiers stockés sur cet ordinateur" n'apparait pas. La solution est alors de repeupler la clé concernée. Son contenu devrait être le reflet de Documents and settings :

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DocFolderPaths

Atchoum=C:\Documents and Settings\Atchoum\Mes documents
Biloutte=D:\Biloutte\MesDocs
Propriétaire=C:\Documents and Settings\Propriétaire\Mes documents
Roger=C:\Documents and Settings\Roger\Mes documents

On constate que fort logiquement les contenus des Valeurs ne reflètent pas vraiment Documents and Settings, mais le chemin réel de "Mes Documents".
Il y a donc une exception lorsqu'un utilisateur a délocalisé son dossier "Mes Documents" comme il est prévu (et conseillé) de le faire avec un simple clic droit sur l'icone "Mes Documents" située sur le Bureau. On voit ci-dessus que l'ami Billoutte a délocalisé son dossier "Mes Documents" en D:\Biloutte\MesDocs

Le chemin exact est alors à relever dans la Valeur "Personal" de la clé des dossiers Shell (appelés dossiers spéciaux dans TweakUI) :
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
Personal=D:\Biloutte\MesDocs

Ou aussi en affichant les Propriétés de l'icone "Mes Documents" si celle-ci est visible sur le Bureau de l'utilisateur :

 

TweakUI permet de choisir facilement les icones des Objets Shell à afficher sur le Bureau :

TweakUI permet de délocaliser de nombreux Dossiers Shell :

"Emplacement" indique sa localisation.

Rappel :
Si vous modifiez à la main des valeurs dans la clé
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
sachez que ces modifications seront recopiées automatiquement dans la clé
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Il est donc inutile de modifier dans les deux clés à la fois.
Il faut redémarrer la session pour prendre les modifications en compte.

Si vous vous intéressez à ces questions, voici la clé équivalente pour la partie Tous Utilisateurs (All Users) :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
On peut par exemple faire en sorte que le Menu Démarrer commun à tous les utilisateurs soit celui de votre compte.
Une restriction : ne pas mettre en commun le Bureau All Users avec celui d'un Compte, sinon les icones apparaissent en double sur son Bureau.
Le contenu du Menu Démarrer commun à tous les Utilisateurs est ici :
C:\Documents and Settings\All Users\Menu Démarrer
C:\Documents and Settings\All Users\Menu Démarrer\Programmes

Remerciements à Nettie777 pour son aimable coopération.

 

Liens
Shellfolders & -objects

 


Merci d'avoir lu jusqu'ici. Des remarques ? Des critiques ? Des suggestions peut-être ?
JF     Les restes du site

compteur Free
Créée le 10/02/2008