6

Is it possible, by a registry hack or other method, to change the way Windows 10 names my screenshot taken and saved with Windows + Print Screen?

Currently my screenshots in C:\Users\[Username]\Pictures\Screenshots are named Screenshot.png, Screenshot (1).png, Screenshot (2).png and so on.

I would like them to be named yyyy-mm-dd_hh.mm.ss.png or similar, just like Minecraft (yes, Minecraft :) ) screenshots. For example: 2016-07-21_12.28.05.png.

I find this naming scheme much better, since it allows me to delete screenshots without messing up the file names. It also gives a clear overview of when a screenshot was taken.

< EDIT >
I fiddled around with the solution dezlov suggested. It took quite a while for me before I finally got it working. It's not the ideal solution I was hoping for, though, but at least it does the job. I now have a batch file in my screenshots folder, that I can run manually when I open the folder. A scheduled task would not be able to have the screenshots renamed when I want them to be (preferably before I even open the screenshots folder), unfortunately.
I played around with making so that a new file in the screenshots folder acts like a trigger for that task you suggested, but that didn't seem possible. Neither can I make Windows + Print Screen a shortcut key for a shortcut file to the .bat file. (Confusing, I know, but I need a shortcut to the .bat file to be able to assign a keyboard combination that triggers that shortcut.) The only possible options I seem to have is CTRL + ALT + [x]. No shift, no Print Screen key, nothing else. Any suggestions for how to make Windows + Print Screen run the .bat file?
< / EDIT >

Hidoo
  • 63

4 Answers4

2

The idea is to setup a batch renaming program to automatically rename all those screenshots to your desired pattern using the last modified file time. This can be setup so that it can be ran either on demand, or periodically via scheduled tasks.

This can be accomplished with ReNamer.

  1. Open ReNamer
  2. Add an Insert renaming rule with the following configuration:
    • Insert ":File_DateModified:" replacing current name (skip extension)
  3. Open Settings in the main menu, Meta Tags tab, change the date format to:
    • yyyy-mm-dd_hh.nn.ss.zzz
  4. Save the current rules configuration as a Preset
    • Click Ctrl+S or by navigating through the main menu.

Now, you can use your saved preset to automatically rename files by using a command line:

"C:\Programs\ReNamer\ReNamer.exe" /rename "My Preset Name" "C:\Users\Username\Screenshots"

(Exact paths and preset name will need to be adjusted to fit your setup)

This command opens ReNamer with the selected preset, loads all files from the specified folder, renames all files and closes automatically if no issues have occurred. You can either create a shortcut for executing it on demand or adding it as a Scheduled Task to be executed periodically.

That is how it looks if you just load your files into ReNamer for inspection:

ReNamer - serializing file names with last modified date

dezlov
  • 545
2

I use Dropbox and it has a save to Dropbox feature. When it does it used a time date naming convention. After that I just move files to another folder. Also the function is ctrl+prtsc for Dropbox save rather than win+prtsc.

ABC123
  • 21
  • 2
0

This answer probably is 7 years late, but just in case if someone needs...

In Windows 11 (have not checked Windows 10) there are two ways to capture screenshots:

  1. Using Windows key + prtsc - will capture the screenshot automatically and save it as 'screenshot (x)'.png where x refers to number of screenshots taken that day
  2. Using just prtsc key - this will open the snipping tool window allowing to select a region, window, or whole screen for capture. Files are saved as 'screenshot date time.png' format.
0

Use AutoHotkey [1] script to rename screenshots.

#Requires AutoHotkey v2.0

#PrintScreen::PrintScreenFn

;--------

PrintScreenFn(*) { ; save screenshot number in variable 'serial' serial := RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer", "ScreenshotIndex", "1")

; send Windows + Print Screen Send "#{PrintScreen}"

; use SetTimer to wait for file creation 100ms and execute action in another thread ; pass serial as number for further action SetTimer(() => PrintScreenExec(serial), -100) }

;--------

PrintScreenExec(number) {

; store path of screenshot file in variable 'MyPath' MyPath := "C:\Users&quot; A_UserName "\Pictures\Screenshots\Screenshot (" number ").png"

; if file does not exist, wait using Sleep and repeat check While FileExist(MyPath) = "" { Sleep 500 ; wait for 500ms - modify as per system performance If A_Index > 6 { ; max 6 attempts, total wait 3000ms = 3s ; If failed ×6, open screenshot folder in explorer Run 'explore "C:\Users' A_UserName '\Pictures\Screenshots&quot;',,"Max" Exit ; give up on rename } }

; prepare to rename file String := FormatTime(FileGetTime(MyPath, "C"), "yyyy-MM-dd @ HH:mm:ss") ; 2016-07-21 @ 13:28:05 ; FileGetTime - obtain creation time as a string in YYYYMMDDHH24MISS format ; FormatTime - transform Timestamp YYYYMMDDHH24MISS into desired date/time format. MyPathNew := "C:\Users&quot; A_UserName "\Pictures\Screenshots&quot; String ".png"

; rename FileMove MyPath, MyPathNew

; Further actions - ; Run 'mspaint.exe "' MyPathNew '"',,"Max" ; open in paint ; Run 'explore "C:\Users' A_UserName '\Pictures\Screenshots&quot;',,"Max" ; open screenshot folder in explorer }

[1]: AutoHotkey is a free, open source macro-creation and automation software utility.

xypha
  • 4,890