Por isso, fartei-me deste aborrecimento e dei uma volta de trabalho.
Há duas peças:
- Um pequeno utilitário que escrevi para guardar a imagem da prancheta num ficheiro .png
- Um AutoHotKey script
O script AutoHotKey verifica se o Photoshop está actualmente activo, e se estiver, intercepta a combinação de teclas Ctrl
+V
, e depois executa o utilitário.
Se o utilitário guardou uma imagem em %TEMP%\clip.png
, a combinação de teclas Shift
+Ctrl
+F12
é enviada para o Photoshop, que mapeei para uma Acção do Photoshop para colocar o ficheiro clip.png
no documento actualmente aberto.
Se o utilitário não salvou a imagem, a combinação de teclas Ctrl
+V
padrão é enviada para o Photoshop e uma pasta padrão é executada.
Todo o código fonte está disponível aqui: https://github.com/SilverEzhik/ClipboardToPNG , e o utilitário pode ser descarregado aqui: https://github.com/SilverEzhik/ClipboardToPNG/releases
Para criar a Acção Photoshop, basta fazer uma nova acção com a combinação de teclas mapeada para Shift+Ctrl+F12 (ou alterar a combinação no ficheiro de script), e depois enquanto se grava, ir para File
> Place Embedded...
, e colar %TEMP%\clip.png
no campo do nome do ficheiro.
O código fonte do script AHK é fornecido abaixo - se não tiver utilizado AutoHotKey antes, instale-o, depois guarde o código num ficheiro filename.ahk
no mesmo directório que o utilitário ClipboardToPNG.exe, e depois execute-o simplesmente.
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