Ich hatte also die Nase voll von diesem Ärgernis und habe eine Abhilfe geschaffen.
Er besteht aus zwei Teilen:
- Ein kleines Dienstprogramm, das ich geschrieben habe, um das Bild in der Zwischenablage in einer .png-Datei zu speichern
- Ein AutoHotKey -Skript
Das AutoHotKey-Skript prüft, ob Photoshop gerade aktiv ist, und wenn ja, fängt es die Tastenkombination Ctrl
+V
ab und führt dann das Dienstprogramm aus.
Wenn das Dienstprogramm ein Bild in %TEMP%\clip.png
gespeichert hat, wird die Tastenkombination Shift
+Ctrl
+F12
an Photoshop gesendet, die ich einer Photoshop-Aktion zugewiesen habe, um die clip.png
-Datei in das aktuell geöffnete Dokument zu platzieren.
Wenn das Dienstprogramm das Bild nicht gespeichert hat, wird die Standard-Tastenkombination Ctrl
+V
an Photoshop gesendet und ein Standard-Einfügen durchgeführt.
Der gesamte Quellcode ist hier verfügbar: https://github.com/SilverEzhik/ClipboardToPNG , und das Dienstprogramm kann hier heruntergeladen werden: https://github.com/SilverEzhik/ClipboardToPNG/releases
Um die Photoshop-Aktion zu erstellen, erstellen Sie einfach eine neue Aktion mit der Tastenkombination, die auf Umschalt+Strg+F12 abgebildet ist (oder ändern Sie die Kombination in der Skriptdatei), und gehen Sie dann während der Aufnahme zu File
> Place Embedded...
und fügen Sie %TEMP%\clip.png
in das Dateinamenfeld ein.
Der Quellcode für das AHK-Skript wird unten bereitgestellt - wenn Sie AutoHotKey noch nicht verwendet haben, installieren Sie es, speichern Sie dann den Code in einer filename.ahk
-Datei im gleichen Verzeichnis wie das Dienstprogramm ClipboardToPNG.exe und führen Sie es dann einfach aus.
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