Так что мне надоело это раздражение, и я нашел обходной путь.
В нем две части:
- Я написал крошечную утилиту для сохранения изображения из буфера обмена в файл .png.
- Скрипт AutoHotKey
Скрипт AutoHotKey проверяет, активен ли в данный момент Photoshop, и если да, то перехватывает комбинацию клавиш Ctrl
+V
, а затем запускает утилиту.
Если утилита сохранила изображение в %TEMP%\clip.png
, в Photoshop будет отправлена комбинация клавиш Shift
+Ctrl
+F12
, которую я сопоставил с действием Photoshop, чтобы поместить файл clip.png
в текущий открытый документ.
Если утилита не сохранила изображение, в Photoshop отправляется стандартная комбинация клавиш Ctrl
+V
и выполняется стандартная вставка.
Весь исходный код доступен здесь: https://github.com/SilverEzhik/ClipboardToPNG, а утилиту можно скачать здесь: https://github.com/SilverEzhik/ClipboardToPNG/releases
Чтобы создать действие Photoshop, просто создайте новое действие с комбинацией клавиш, сопоставленной с Shift+Ctrl+F12 (или измените комбинацию в файле скрипта), а затем во время записи перейдите к File
> Place Embedded...
и вставьте %TEMP%\clip.png
в файл. поле имени.
Исходный код скрипта AHK приведен ниже — если вы раньше не использовали AutoHotKey, установите его, затем сохраните код в файле filename.ahk
в том же каталоге, что и утилита ClipboardToPNG.exe, а затем просто запустите его.
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
person
Ezhik
schedule
15.05.2018