Вопрос или проблема
Как просто вставить скриншот (сделанный с помощью PrtScn или Alt+PrtScn) в папку Проводника Windows и сохранить его как изображение (возможно, с диалогом, спрашивающим о параметрах размера и формата изображения)? То есть я могу сделать скриншот с помощью клавиши Print Screen, открыть папку и нажать Ctrl+V, и в этой папке появится новый файл jpg (или png, или другой формат) с содержимым моего скриншота.
Я только что нашел https://github.com/EslaMx7/PasteIntoFiles
Эта бесплатная программа “PasteIntoFiles” на GitHub добавляет ярлык в контекстное меню Проводника Windows, открывающий маленький инструмент с предварительно выбранной текущей папкой и кнопкой “Сохранить”.
Программа работает с Windows 10.
После того как я разместил этот запрос пользователям DonationCoder, мир получил удобный кусочек программного обеспечения от c.gingerich, который идеально подходит. (Страница проекта также доступна на http://paf.pen.io/, и теперь стоит денег, но существуют старые бесплатные версии.)
Этот снимок блога, связанного ниже, ссылается на эту страницу, которая в свою очередь ссылается на этот EXE файл, размещённый на archive.org.
Paste As File. Щелкните правой кнопкой мыши на рабочем столе или на фоне окна Проводника Windows и выберите “Вставить как файл”. Вы затем можете сохранить буфер обмена в файл на основе содержимого. Либо текстовый файл, либо изображение в формате PNG или JPG. Вы можете скачать его с моего сайта, если вас это интересует. Это бесплатно.
Используйте autohotkey, вызывая скрипт PowerShell.
Powershell:
Add-Type -AssemblyName System.Windows.Forms ### не требуется в PowerShell_ISE
if ($([System.Windows.Forms.Clipboard]::ContainsImage())) {
$image = [System.Windows.Forms.Clipboard]::GetImage()
$filename="<yourdefault>.png"
if ($args[0]) {
$filename=$args[0]
}
[System.Drawing.Bitmap]$image.Save($filename,
[System.Drawing.Imaging.ImageFormat]::Png)
Write-Output "содержимое буфера обмена сохранено как $filename"
} else {
Write-Output "буфер обмена не содержит данных изображения"
}
… можно затем вызвать из скрипта autohotkey ниже
autohotkey
; основано на ActiveFolderPath() от Scoox https://autohotkey.com/board/topic/70960-detect-current-windows-explorer-location/
AFP(WinTitle="A")
{
WinGetClass, Class, %WinTitle%
If (Class ~= "Program|WorkerW") ;рабочий стол
{
WinPath := A_Desktop
valid:=1
}
Else ;все другие окна
{
WinGetText, WinPath, A
RegExMatch(WinPath, ".:\\.*", WinPath)
for w in ComObjCreate("Shell.Application").Windows ; получить путь папки
{
aac = % w.Document.Folder.Self.Path
if (WinPath=aac) {
valid:=1
break
}
}
}
if !valid {
WinPath := A_Desktop ; По умолчанию рабочий стол
; return ; .. или По умолчанию null
}
WinPath := RegExReplace(WinPath, "\\+$")
If WinPath
WinPath .= "\"
Return WinPath
}
return
; Вставить изображение буфера обмена в локальный файл
^F15::
filename:= AFP() . A_Year "_" A_MM "_" A_DD "_" A_Hour . A_Min . A_Sec . ".png"
command:="<powershellscriptpath>.ps1 '" filename "'"
RunWait, PowerShell.exe -ExecutionPolicy Bypass -Command %command%
;Показать файл в окне проводника
Run explorer /select`, %filename%
return
Если вы используете Windows Vista или Windows 7, я рекомендую использовать “Ножницы”, которые установлены автоматически.
Этот инструмент немного более универсальный, чем команда Prtscn, и позволяет напрямую сохранять, копировать и вставлять и т.п.
Что касается команды PrtScn, автоматически копирующей в Проводник, я думаю, что это невозможно из-за формата, в котором команда делает скриншот.
Это также работает, если вы копируете изображение, встроенное в документ (например, OneNote или Word), в буфер обмена:
1. Откройте программу Paint.
2. Вставьте из буфера обмена.
3. Сохраните файл как jpg (например) или в любом другом списке формате.
Вы можете использовать xplorer2
, он может непосредственно вставлять изображение из буфера обмена в файл проводника
.
Ответ или решение
Вопрос о том, как вставить скриншот непосредственно в проводник Windows и сохранить его в виде изображения, заслуживает тщательного анализа. К сожалению, стандартные возможности Windows не предусматривают возможности простого нажатия Ctrl+V для вставки и сохранения изображения в папке проводника. Однако, существуют различные подходы и инструменты, позволяющие обойти это ограничение.
Теория
Основной проблемой является ограничение функциональности стандартного инструмента PrtScn (Print Screen). Он позволяет скопировать изображение в буфер обмена, но не даёт возможности напрямую сохранить это изображение в заданной папке. Комбинация клавиш PrtScn или Alt+PrtScn только копирует изображение и требует дополнительного софта для его сохранения непосредственно в проводнике.
Пример
Рассмотрим несколько решений, которые могут облегчить эту задачу:
-
PasteIntoFiles: это бесплатное программное обеспечение, доступное на GitHub, добавляет пункт контекстного меню в проводник Windows, который позволяет сохранить содержимое буфера обмена в текущую папку. Этот инструмент предлагает выбрать формат и размер изображения перед сохранением.
-
Paste As File: это ещё одно решение, представленное разработчиком c.gingerich, которое позволяет вставить изображение из буфера обмена в файл, используя контекстное меню проводника. Программа поддерживает форматы PNG и JPG и позволяет назвать файл в соответствии с содержимым.
-
Автоматизация с AutoHotKey и PowerShell: данное решение использует скрипты на AutoHotKey и PowerShell для автоматической вставки и сохранения изображения из буфера обмена в виде файла. PowerShell проверяет наличие изображения в буфере и сохраняет его в заданной папке, тогда как AutoHotKey может вызвать данный скрипт по горячей клавише.
Применение
Если ваша основная задача заключается в часто повторяющихся операциях захвата и сохранения скриншотов, рекомендуется выбрать специализированное ПО, такое как указанное выше, или использовать автоматизацию через скрипты. Оба подхода позволят упростить рабочий процесс и уменьшить количество ручных операций. Инструменты, такие как "Snipping Tool", также могут быть полезны, так как предложены в Windows Vista и Windows 7, предоставляя простые функции захвата и сохранения.
Выбор подхода будет зависеть от вашей конкретной рабочей среды и предпочтительной методологии работы. Это может быть интеграция с существующими инструментами автоматизации или использование стороннего программного обеспечения для удобства и повышения производительности.