TUTORIEL
Réactiver l'affichage des miniatures des fichiers .pspimage
dans les fenêtres de l'explorateur (Windows 10)
dans les fenêtres de l'explorateur (Windows 10)
Quel utilisateur de Paintshop Pro n'a pas un jour tempêté devant son écran face à l'absence des miniatures sur ses fichiers .pspimage, remplacées par de monotones et impersonnelles rangées d'icônes sans âme ? Obligation alors de lancer PSP pour visualiser le contenu de chaque précieux. Ça crispe. Si !
Mais ça, c'était avant ! Après la mise en application de ce tuto, toutes, absolument toutes les miniatures reviendront et les crispations appartiendront au passé.
Chapitre 1 - Comment j'en suis arrivé à m'intéresser au problème
Je me suis intéressé à cette absence des miniatures depuis que j'ai délaissé le logiciel MysticThumbs (logiciel qui génère des miniatures pour une foule de fichiers) dont j'étais fatigué de payer une licence d'utilisation à chaque grande mise à jour. Depuis, je passe par des solutions plus légères, et c'est comme ça que j'ai découvert que les miniature de mes fichiers .pspimage n'étaient plus générées.
J'ai alors écumé de nombreux espaces de discussion avant de réaliser que personne ne propose de solution cohérente et définitive : certains renvoient vers l'installation d'un programme vieux et obsolète pour ré-afficher les miniatures, quand d'autres, auto-proclamés experts, recommandent de réinstaller Windows (ben voyons) ! Les plus chanceux auront tout réglé sans comprendre pourquoi au gré de multiples réinstallations, pour finir dans des explications ésotériques (Jésus aime Windows).
J'ai donc pris le problème à bras le corps pour tenter de comprendre comment Windows réagissait face à une demande d'affichage de miniature. Et combien j'aurais gagné du temps si à la place d'être fainéant, j'avais commencé par là, car le remède est simple à mettre en oeuvre. Je vais donc expliquer ça simplement, en mode bavard pour une lecture tout public; les geeks et (vrais) experts techniques qui auront eu la patience de me lire jusqu'au bout me pardonneront les raccourcis de langage destinés à simplifier la prose.
Chapitre 2 - Une solution sous la forme d'un énième patch ?
Ce tuto ne propose pas un patch mystérieux ou une bidouille hasardeuse venant s'appliquer comme un pansement temporaire sur un supposé dysfonctionnement de Paintshop Pro. Non, PSP fonctionne TRÈS BIEN (malgré sa lenteur, mais je me disperse) ! On est juste face à un petit oubli sur lequel les programmeurs de chez Corel auraient intérêt à se pencher, car la solution ne s'impose pas d'elle-même à l'utilisateur final. Ce n'est donc pas un BUG à proprement parlé, malgré tout j'utiliserai volontiers ce terme car, comme PSP, il ne contient que 3 lettres
Ce tuto est applicable sur toutes les versions modernes de PSP, comprendre celles capables de gérer l'affichage de miniatures dans l'explorateur de Windows. À titre personnel, utilisateur de PSP depuis un quart de siècle, j'utilise désormais en parallèle PSP 2022 64 bits et PSP 2021 32 bits (pour retrouver mes plugins 32 bits et parce qu'il n'est pas possible d'utiliser en même temps les versions 32 et 64 bits d'une même version). Je n'utilise pas PSP 2023 et ne pense pas aller plus loin que la 2022 au vu de la lourdeur de ce qu'est devenu PSP. Mais c'est un autre sujet... et je reste ouvert à toutes les bonnes surprises.
Chapitre 3 - Comment ce "bug" apparaît-il ?
Ce bug apparaît après de multiples installations/désinstallations de versions de PSP suite aux changements de versions ou à la volonté de maintenir plusieurs versions en parallèle. Ce souci n'est pas systématique, mais reste suffisamment courant pour inonder les forums de perplexité, à défaut de solution. Allez, on y va !
Lors de l'installation de Paintshop Pro, le programme installateur informe Windows de plein de choses, et toutes ces choses sont enregistrées précieusement dans ce qu'on appelle le Registre (un gros fichier avec plein de bazar très utile dedans, sans lui Windows ne fonctionne pas), mais seules 2 nous intéressent ici pour élucider le bug :
INFORMATION N°1 - L'installateur de PSP informe Windows qu'à partir de maintenant, lorsqu'un fichier d'extension .pspimage sera double-cliqué, c'est le programme Paintshop Pro qui devra se lancer et charger le fichier en question. Il n'est pas encore question de miniature, mais juste d'établir un lien fonctionnel entre une extension de fichier et un programme.
INFORMATION N°2 - L'installateur informe également Windows qu'à chaque fois qu'un fichier .pspimage apparaîtra dans l'explorateur, Windows devra faire appel à tout petit programme annexe qui lui n'a qu'un seul but dans la vie : afficher un aperçu du contenu du fichier en lieu et place de son icône, et ce sans avoir à lancer le gros programme principal PSP auquel il est lié. Magique ! Sauf que...
Pour les curieux :
► Afficher le texte
ÉTAPE 1 - Installation de PSP 2021 32 bits, histoire de retrouver ses vieux plugins. Tout se passe bien, les miniatures des fichiers PSP en stock dans la galerie d'images sont bien affichées.
ÉTAPE 2 - En parallèle de PSP 2021, installation de PSP 2022 64 bits pour profiter de plugins 64 bits. Tout se passe également très bien.
ÉTAPE 3 - Décision de désinstaller PSP 2022 pour moultes raisons. Après redémarrage du PC, il ne reste donc plus que PSP 2021. Les miniatures précédemment générées n'ont pas disparu... Du moins, APPAREMMENT.
ÉTAPE 4 - Création puis enregistrement d'une image au format .pspimage avec PSP 2021. Mais là, stupeur : aucune miniature. Alors que les autre miniatures affichées dans l'ÉTAPE 1 apparaissent toujours, comme si les miniatures s'affichaient de façon aléatoire, à la tête du client. Que se passe-t-il ?
Il s'est passé deux choses, qui composent la clé du mystère (Ahhh, pas trop tôt) :
FAIT À SAVOIR N°1 - Une miniature créée par l'explorateur pour un fichier donné sera toujours affichée tant qu'elle sera PRÉSENTE dans le CACHE des miniatures de Windows. Si ce cache est vidé (par exemple après la fonction de nettoyage intégrée à Windows), les miniatures disparaissent pour laisser place aux icônes par défaut, en attente d'être à nouveau régénérées à l'ouverture des dossiers. Il faut donc comprendre que les miniatures n'apparaissent absolument pas aléatoirement, seules s'affichent celles qui sont toujours présentes dans le cache, même si le programme qui les a générées n'est plus présent, et bien entendu celles générées automatiquement.
FAIT À SAVOIR N°2 - Lors de l'installation de PSP, lorsque l'installateur informe Windows de la présence du petit programme générateur de miniatures, dans les faits 3 informations CAPITALES sont enregistrées dans le Registre, MAIS DANS UN EMPLACEMENT UNIQUE CAR PARTAGÉES ENTRE LES DIFFÉRENTES VERSIONS DE PSP :
INFO CAPITALE N°1 - Le nom et l'emplacement du fichier contenant le générateur de miniatures : C:\Program Files\Corel\Corel PaintShop Pro XXXX (64-bit)\PSPPThumbShellExt64.dll.
INFO CAPITALE N°2 - Le nom interne UNIQUE du générateur de miniatures : PSPThumbExtractor Class (le mot class renvoie à la nature de ce que contient le fichier, une classe, mais passons vite à la suite).
INFO CAPITALE N°3 - Le numéro d'identification UNIQUE du générateur de miniatures : {35C5E9BD-9716-4b2a-9EDE-C7C304159F03}. Et là on touche au cœur du problème. Car ce générateur de miniatures est réutilisé dans toutes les versions de PSP. C'est une sorte de brique de programmes réutilisable à souhait qui n'a pas à être intégralement reprogrammée d'une version de PSP à l'autre. En fait on y revient, c'est ça une classe, une brique de programmation réutilisable à volonté. C'est donc du recyclage utile pour gagner du temps. Ainsi, dans la mesure où cette petite brique ne fait qu'une seule et même chose d'une version à l'autre de PSP, son petit nom et son numéro d'identification restent STRICTEMENT les mêmes, seul l'emplacement du fichier conteneur PSPPThumbShellExt64.dll change (car il y a toujours des bricoles améliorées à chaque nouvelle version). Et c'est là qu'est l'os !
Si vous avez bien suivi, peut-être aurez-vous froncé les sourcils concernant l'INFO CAPITALE N°1, vous demandant comment il est possible d'enregistrer dans le Registre, DANS UN EMPLACEMENT UNIQUE ET PARTAGÉ, l'information de localisation du fichier PSPPThumbShellExt64.dll, si plusieurs versions de PSP sont installées ? Et le problème est bien là : c'est impossible !
Voici donc ce qui s'est passé lors de l'installation de PSP 2021 puis après installation/désinstallation de PSP 2022. On reprend les étapes vues plus haut :
ÉTAPE 1 - Installation de PSP 2021 : Windows prend connaissance du nom interne du générateur de miniatures : PSPThumbExtractor Class.
ÉTAPE 2 - Installation de PSP 2022 : Windows prend une fois de plus connaissance du nom interne du générateur de miniatures, sauf que cette information, il l'avait déjà depuis l'installation de PSP 2021, aussi seul l'emplacement de PSPPThumbShellExt64.dll est modifié. C'est donc le fichier PSPPThumbShellExt64.dll installé par PSP 2022 qui va prendre le relais pour générer les miniatures puisque c'est son emplacement sur le disque qui est désormais enregistré dans le Registre.
ÉTAPE 3 - Désinstallation de PSP 2022 : les informations relatives au générateur de miniatures sont supprimées, le nom interne PSPThumbExtractor Class est également effacé... sans vérifier si une autre version de PSP l'utilise !
Ainsi, avec la disparition à la fois du nom interne et du numéro d'identification du générateur de miniature, la version de PSP toujours existante peut toujours ouvrir des fichiers .pspimage, mais Windows est incapable de générer quelconque miniature puisque l'identité du générateur a disparu. La grosse erreur du désinstallateur de Corel est donc de ne pas vérifier la présence de PSPPThumbShellExt64.dll ailleurs que dans le dossier de la version de PSP en cours de désinstallation. Alors qu'il suffirait simplement d'actualiser l'adresse pointant vers PSPPThumbShellExt64.dll, et de préserver les informations liées à l'identité du générateur de miniatures, qui elles ne bougent pas d'une version à l'autre. Je porte cette lacune sur le fait que Corel doit se dire que ceux qui passent d'une version à l'autre ne sont pas assez bêtas pour conserver des versions précédentes, surtout en 32 bits, et donc que les problèmes de conflit de fichiers n'ont pas raison d'être. Sauf que si, y'a plein de bêtas en informatique, et j'en suis un grand
Chapitre 4 - Maintenant qu'on sait d'où vient le bug, comment le corriger sans tout réinstaller ?
On va régler le problème avec ce qu'on appelle un fichier de registre dans laquelle seront enregistrées les informations dont Windows a besoin pour reconnaître l'existence du générateur de miniatures. Il est évident que ce fichier n'a d'utilité que si vous avec au moins une version de PSP installée : il n'est pas possible d'afficher les miniatures des fichiers PSP si PSP n'est pas installé, à moins d'utiliser un programme tiers.
1 - Copier-coller le bout de texte ci-dessous dans un simple fichier texte.
2 - Modifier si besoin la ligne :
@="C:\\Program Files\\Corel\\Corel PaintShop Pro 2022 (64-bit)\\PSPPThumbShellExt64.dll" afin d'adapter le chemin à votre version de PSP la plus récente.3 - Enregistrer le fichier en lui donnant l'extension .reg et non .txt.
4 - Double-cliquer dessus pour insérer les informations dans le registre.
Windows Registry Editor Version 5.00
; ====================================================
; Affichage des miniatures pour les fichiers .pspimage
; ====================================================
[HKEY_CLASSES_ROOT\.PspImage\shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{35C5E9BD-9716-4b2a-9EDE-C7C304159F03}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pspimage\shellex\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{35C5E9BD-9716-4b2a-9EDE-C7C304159F03}"
; Description de la classe permettant de générer les miniatures
[HKEY_CLASSES_ROOT\CLSID\{35C5E9BD-9716-4b2a-9EDE-C7C304159F03}]
@="PSPThumbExtractor Class"
[HKEY_CLASSES_ROOT\CLSID\{35C5E9BD-9716-4b2a-9EDE-C7C304159F03}\InprocServer32]
@="C:\\Program Files\\Corel\\Corel PaintShop Pro 2022 (64-bit)\\PSPPThumbShellExt64.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\CLSID\{35C5E9BD-9716-4b2a-9EDE-C7C304159F03}\TypeLib]
@="{6be483a4-acdb-49a5-9097-80c537ca0279}"Voilà, c'est tout. Un petit redémarrage sera probablement nécessaire pour que vos miniatures réapparaissent.
Chapitre 5 - Conclusion
Ma conclusion reste dans l'univers de Painshop Pro, et j'ai plaisir à partager trois belles astuces, histoire de vous remercier d'avoir lu jusqu'au bout.
ASTUCE N°1 :
Dans les premières versions de PSP, il était possible de supprimer physiquement une image chargée d'un clic sur une icône. C'était plus pratique que de repasser à chaque fois par l'explorateur de Windows. Avec les dernières versions de PSP, l'icône à disparu tout comme l'option dans le menu fichier, mais la fonctionnalité de suppression par elle-même est toujours présente : il suffit d'effectuer au clavier la combinaison CTRL-DEL pour envoyer le fichier sélectionné à la corbeille (après affichage d'un message de confirmation).
ASTUCE N°2 :
Lorsqu'on ouvre un dossier contenant beaucoup d'images, la génération des miniatures peut durer un certain temps, très dépendant de la puissance de la machine et de la présence ou non de support SSD. Et lorsque ce sont plusieurs dossiers dont ont souhaiterait générer les miniatures, la patience peut être mise à rude épreuve. Mais plus maintenant ! Le petit, mais redoutable, freeware WinThumbsPreloader se charge de générer en amant les miniatures de n'importe quel dossier. Ensuite c'est plaisir total de voir ses miniatures affichées instantanément. Attention : la génération de miniatures pour les gros dossiers est gourmande en mémoire.
À télécharger ici : https://github.com/bruhov/WinThumbsPreloader.
ASTUCE N°3 :
Par défaut, Windows ne conserve pas indéfiniment les miniatures en cache et chaque redémarrage peut les voir disparaître en tout ou partie. Grossière erreur de Microsoft, mais bon ! Cette astuce désactive la suppression du cache des miniatures (mais cette astuce est peu documentée, donc ne pas râler si elle ne fonctionne pas toujours. Chez moi, c'est bon). Encore un fichier de registre :
Windows Registry Editor Version 5.00
; Pour Windows 32 bits
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]
@="{889900c3-59f3-4c2f-ae21-a409ea01e605}"
"Autorun"=dword:00000000
; Pour Windows 32/64 bits
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Thumbnail Cache]
@="{889900c3-59f3-4c2f-ae21-a409ea01e605}"
"Autorun"=dword:00000000Et une dernière suggestion pour la route et après je file : lors du nettoyage manuel de Windows (lancement par cleanmgr.exe), pensez à décocher la case Miniatures.



