Qu'est-ce qui détermine l'icône des entrées dans le menu contextuel Nouveau ?

Je ne suis pas tout à fait sûr de comment cela fonctionne. Donc je peux ajouter des éléments au menu contextuel “Nouveau” (qui apparaît lors d’un clic droit ou en appuyant sur le bouton de menu) via l’éditeur du registre. Par exemple, si je veux créer une nouvelle entrée de fichier .cpp, je peux importer un fichier .reg qui ressemble à ceci :

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.cpp]
@="cpp"
[HKEY_CLASSES_ROOT\.cpp\ShellNew]
"NullFile"=""
[HKEY_CLASSES_ROOT\cpp]
@="C++ File"

Je peux donc définir l’extension et la description qui apparaît en utilisant cette méthode. Cependant, je ne suis pas sûr de comment l’icône qui apparaît à côté de ma description est déterminée. Voici ce que je veux dire :

Je ne suis pas sûr si Windows choisit cette image automatiquement en fonction du programme que j’ai défini comme programme par défaut pour cette extension ou si cela peut être défini manuellement dans le registre.

Cette icône peut-elle être définie manuellement ?

Par défaut, l’Explorateur utilise l’icône définie par le type de fichier, mais cela peut être remplacé en plaçant une valeur IconPath dans la clé ShellNew. J’ai découvert cela en utilisant Process Monitor pour surveiller l’activité du registre depuis explorer.exe.

Il semble que les entrées existantes de Windows utilisent le type de données REG_EXPAND_SZ, mais REG_SZ fonctionne tout aussi bien et est beaucoup plus facile à inclure dans un fichier REG. Le format est le chemin complet vers le fichier contenant l’icône, puis une virgule, puis le numéro de la ressource d’icône dans le fichier. Dans cette capture d’écran, j’ai utilisé %ProgramFiles%\Windows Mail\wab.exe,10 :

Comme vous pouvez le voir, cela n’affecte pas l’icône du fichier en dehors de la liste Nouveau :

Pour inclure cette modification dans votre fichier REG, ajoutez cette ligne juste sous la ligne "NullFile"="" :

"IconPath"="%ProgramFiles%\\Windows Mail\\wab.exe,10"

Vous devrez redémarrer l’Explorateur pour que la modification prenne effet.