Таким образом, я сыт по горло этим раздражением и сделал обходной путь.
Есть две части к этому:
- Крошечная утилита, которую я написал, чтобы сохранить изображение в буфер обмена .png файл
- Скрипт AutoHotKey
Сценарий AutoHotKey проверяет, активен ли в данный момент Photoshop и, если это так, перехватывает Ctrl
+V
, а затем запускает утилиту.
Если утилита сохранила изображение в %TEMP%\clip.png
, комбинация клавиш Shift
+Ctrl
+F12
отправляется в Photoshop, который я сопоставил с действием Photoshop, чтобы поместить файл clip.png
в текущий открытый документ.
Если утилита не сохранила изображение, стандартное Ctrl
+V
отправляется в Photoshop, и выполняется стандартная вставка.
Весь исходный код доступен здесь: 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