Wklej obraz jako plik — prosty trik dla eksploratora Windows
Skrypt PowerShell i wpis rejestru, które dodają do menu kontekstowego opcję zapisania obrazka ze schowka prosto jako plik PNG.
Screenshot, zrzut ze Snipping Tool albo obrazek skopiowany z przeglądarki trafia do schowka — a potem i tak trzeba go wkleić do jakiegoś programu, żeby zapisać jako plik. Ten mały trik dodaje do menu kontekstowego eksploratora Windows opcję „Wklej obraz jako plik”, która robi to za jednym kliknięciem, bezpośrednio w bieżącym folderze.

Jak to działa
Rozwiązanie to dwa pliki:
paste-image.ps1— skrypt PowerShell, który odczytuje obraz ze schowka (obsługuje zarówno surowe dane PNG kopiowane np. z Chrome/Edge, jak i zwykłe bitmapy) i zapisuje go jako plikwklejony_RRRRMMDD_GGMMSS.pngw folderze, z którego został wywołany.install-paste-image.reg— wpis rejestru, który dodaje pozycję „Wklej obraz jako plik” do menu kontekstowego tła folderu (klik prawym przyciskiem na pustym miejscu w eksploratorze).
Po instalacji wystarczy skopiować obraz do schowka, kliknąć prawym przyciskiem w folderze docelowym i wybrać nową opcję.

Skrypt PowerShell
Sedno rozwiązania to obsługa dwóch formatów danych w schowku. Chrome i Edge kopiują obrazek jako surowy strumień PNG (format "PNG"), natomiast większość innych aplikacji (Paint, Word, Snipping Tool) wrzuca do schowka gotowy obiekt System.Drawing.Image. Trzeba obsłużyć oba przypadki:
param(
[string]$Folder
)
$Folder = $Folder.TrimEnd('\')
$logPath = Join-Path $env:TEMP "paste-image-error.log"
try {
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
if (-not $Folder -or -not (Test-Path $Folder)) {
throw "Zly folder docelowy: '$Folder'"
}
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$dataObj = [System.Windows.Forms.Clipboard]::GetDataObject()
if ($dataObj.GetDataPresent("PNG")) {
# surowe bajty PNG prosto ze schowka - tak kopiuje m.in. Chrome/Edge
$stream = $dataObj.GetData("PNG")
$path = Join-Path $Folder "wklejony_$timestamp.png"
$fs = [System.IO.File]::Create($path)
$stream.CopyTo($fs)
$fs.Close()
}
elseif ([System.Windows.Forms.Clipboard]::ContainsImage()) {
$img = [System.Windows.Forms.Clipboard]::GetImage()
$path = Join-Path $Folder "wklejony_$timestamp.png"
$img.Save($path, [System.Drawing.Imaging.ImageFormat]::Png)
}
else {
[System.Windows.Forms.MessageBox]::Show("Schowek nie zawiera obrazka.", "Info") | Out-Null
}
}
catch {
$_ | Out-File -FilePath $logPath -Append
[System.Windows.Forms.MessageBox]::Show("Blad: $_`n`nSzczegoly w $logPath", "Blad") | Out-Null
}
Kilka szczegółów, które mają znaczenie:
$dataObj.GetDataPresent("PNG")sprawdzane jako pierwsze — surowy strumień PNG zachowuje oryginalną jakość i przezroczystość, w przeciwieństwie doClipboard.GetImage(), który czasem gubi kanał alfa.%Vz rejestru trafia jako$Folder— to bieżący folder eksploratora, więc plik ląduje dokładnie tam, gdzie kliknięto prawym przyciskiem.- Błędy lecą do logu w
%TEMP%, a nie tylko do okienka z komunikatem — przydatne, gdy skrypt jest wywoływany bez konsoli i nie widać, co poszło nie tak. - Brak obrazka w schowku nie jest traktowany jak błąd — użytkownik dostaje informację, a nie czerwony wyjątek.
Wpis rejestru jest już tylko cienkim wrapperem, który podpina skrypt pod menu kontekstowe:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\WklejObrazJakoPlik]
@="Wklej obraz jako plik"
"Icon"="imageres.dll,-5302"
[HKEY_CLASSES_ROOT\Directory\Background\shell\WklejObrazJakoPlik\command]
@="powershell.exe -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -File \"C:\\Tools\\paste-image.ps1\" \"%V\""
-WindowStyle Hidden i -NoProfile sprawiają, że nie migocze okno konsoli i nie ładuje się cały profil PowerShell — dla jednorazowego zadania to zbędny narzut.
Instalacja
- Skopiuj plik
paste-image.ps1doC:\Tools\(utwórz folder, jeśli nie istnieje). - Kliknij dwukrotnie
install-paste-image.regi potwierdź dodanie wpisu do rejestru. - Gotowe — opcja „Wklej obraz jako plik” pojawi się w menu kontekstowym po kliknięciu prawym przyciskiem na pustym miejscu w dowolnym folderze.
Żeby odinstalować, wystarczy usunąć klucz HKEY_CLASSES_ROOT\Directory\Background\shell\WklejObrazJakoPlik w Edytorze rejestru.
Pliki
Mały trik, ale oszczędza kilka kliknięć za każdym razem, gdy trzeba szybko zrzucić coś ze schowka na dysk.