J'en ai donc eu assez de ce désagrément et j'ai créé une solution de rechange.
Il y a deux parties à cela :
- Un petit utilitaire que j'ai écrit pour sauvegarder l'image du presse-papiers dans un fichier .png.
- Un site AutoHotKey script
L'AutoHotKey script vérifie si Photoshop est actuellement actif, et si c'est le cas, il intercepte la touche Ctrl
+ V
et ensuite il exécute l'utilitaire.
Si l'utilitaire a enregistré une image sur %TEMP%\clip.png
le Shift
+ Ctrl
+ F12
La combinaison de touches est envoyée à Photoshop, que j'ai mappé à une action Photoshop afin de placer l'image de l'image. clip.png
dans le document actuellement ouvert.
Si l'utilitaire n'a pas enregistré l'image, la fonction standard Ctrl
+ V
est envoyé à Photoshop et un collage standard est effectué.
Tout le code source est disponible ici : https://github.com/SilverEzhik/ClipboardToPNG et l'utilitaire peut être téléchargé ici : https://github.com/SilverEzhik/ClipboardToPNG/releases
Pour créer l'action Photoshop, il suffit de créer une nouvelle action dont la combinaison de touches correspond à Shift+Ctrl+F12 (ou de modifier la combinaison dans le fichier script, puis, pendant l'enregistrement, d'aller à l'adresse suivante File
> Place Embedded...
et coller %TEMP%\clip.png
dans le champ du nom du fichier.
Le code source de l'AHK script est fourni ci-dessous - si vous n'avez pas utilisé AutoHotKey auparavant, installez-le, puis sauvegardez le code dans un fichier de type filename.ahk
dans le même répertoire que l'utilitaire ClipboardToPNG.exe, puis exécutez-le.
DoPhotoshopPaste() {
RunWait, %A_ScriptDir%\ClipboardToPNG.exe ; run utility, wait for it to complete
if (ErrorLevel == 0) { ; if error code is 0
SendEvent, +^{F12} ; press Shift+Ctrl+F12 to run the designated Photoshop action to paste
}
else {
SendEvent, ^v ; else, just perform a standard paste.
}
}
#IfWinActive ahk_exe Photoshop.exe ; only activate this hotkey when photoshop is active
^v::DoPhotoshopPaste()
#IfWinActive