There is another question on here that allows users to find the path to their current background image through a cmd command.

How could I find out the path to the current desktop image?

In Windows 10 this no longer works. It only returns the first image in the folder, it does not change with the backgrounds as they transition. I need a similar command that returns the path(s) to the current image on the desktop background(s) that actually works in Windows 10 if one exists.

up vote 77 down vote accepted
+50

A copy of the current wallpaper can be found by typing below path in Windows File Explorer address bar

Path 1 -
%AppData%\Microsoft\Windows\Themes\CachedFiles

If you don’t find a copy of your current desktop background image here, try below path instead

Path 2 -
%AppData%\Microsoft\Windows\Themes\TranscodedWallpaper

Note: The file TranscodedWallpaper in Path 2 does not have a file extension. Use "Open With" or "How do you want to open this file?" dialogue box and select any image viewer, such as, "Windows Photo Viewer", "Honeyview" or the "Photos" app.

Note for Windows 10: The above locations have limitations. For example, if the wallpaper you’re looking for is no longer visible in the ‘Background’ tab in the Settings app, you can’t recover it. It will work for your last five wallpapers but nothing older. (Source)

Default Windows wallpapers can be found in

%SystemRoot%\Web

You will see 3 folders

  • "4K" for 4K wallpapers,
  • "Screen" for lock screen backgrounds, &
  • "Wallpapers" for Default Windows wallpapers

Installed themes (Aero, etc):

%SystemRoot%\Resources\Themes

Per-user installed themes (including pre-installed from OEM):

%LocalAppData%\Microsoft\Windows\Themes  

If you are looking for the location of Lock Screen images - visit this SuperUser question.

Personally, I use John's Background Switcher to manage my desktop backgrounds.

John's Background Switcher has an option to current/previous desktop backgrounds (ones set by the app). Right click on tray icon and select View Current Picture and the current desktop background opens in Windows Photo Viewer or your default image viewer). In Windows Photo Viewer, you can right click on the image & select Open File Location to view the original location of current desktop background in windows file explorer.

  • The issue with the switcher is that i need a python script to be able to poll the path. The previous command worked beautifully in windows 7. Also that new path doesnt even exist on my windows 10 machine. – cujo Sep 24 '15 at 14:33
  • added a second path – xypha Sep 24 '15 at 16:35
  • Its not what I hoped for since now I have to watch file properties for changes, but it does work. Thank you – cujo Sep 24 '15 at 17:03
  • This method doesn't provide the location of the original photo, but rather the copy that Windows makes in preparation for display. – Edward Brey Oct 26 at 16:06
  • @Edward Brey - Use John's Background Switcher (or several other switchers/downloaders) to switch wallpapers and to find original location. To the best of my knowledge, Windows 10 does not natively support it. Maybe raise it as a feature request in Microsoft Feedback – xypha Nov 2 at 10:41

Windows 8 and 10 still store the original path of the current background image - rather than the cached / transcoded file as in xypha's answer:

HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache

Microsoft doesn't want things to be easy though: this isn't plain text so you have to decode it from binary.

The Winhelponline website has compiled a couple of scripts (VBA and PowerShell) which can print the image name, and launch Explorer to point to the image file.

http://www.winhelponline.com/blog/find-current-wallpaper-file-path-windows-10/

  • 1
    This does not work with multiple displays. Unverified with a single display. – cujo May 2 '17 at 2:18

I have Windows 10, version 1709. One of the other answers got me looking in the registry and I found exactly what I needed in clear text at

HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper

No decoding needed.

  • I use Bing Desktop to change wallpapers. I was able to find the path to those wallpaper images using this. Thanks! – anacron Nov 22 at 6:59

You don't explain exactly what you want to achieve so, I can give some tips here based on a guess: you want to change your wallpaper in certain conditions (for example one wallpaper every time your restart your computer) or to use a custom file as wallpaper.

In Windows 7 the wallpaper was usually found in %AppData%\Microsoft\Windows\Themes\TranscodedWallpaper.
In Windows 10 you will find it in %AppData%\Microsoft\Windows\Themes\CachedFiles.

You can also interrogate the registry at HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache but note the warnings below about programs that are NOT writing a file to disk!

If you want to build your own CMD script this might be unreliable IF you set the wallpaper not from Windows but from an external program. For example if I see a nice mage in my browser I set it as wallpaper directly from there. Same for IrfanView. I can easily name another 10 popular programs that could change the wallpaper to a custom path.

Note that some programs are changing the wallpaper without actually writing a file to disk. This can be done by hooking to the Microsoft Windows Desktop window and drawing directly on its canvas. This is how GIF/AVI animations are drawn on desktop.

There is another issue if you build your own script: How to you handle images that don't have same aspect ratio as your desktop, or when desktop resolution changes?

The solution (if I guessed your problem correctly) would be to use a program like John's Background Switcher or BioniX Desktop Background Changer. The later is much more customizable and can be controlled via command line. It also has auto-detection to detect the best way to resize the image (fill/fit/tile). BioniX can also draw GIF without writing anything to disk (as explained above).

A even better way would be to use the "Lock on folder" option. enter image description here
Set BioniX to change your wallpaper every 60 seconds (don't worry, you won't see a new wallpaper every 60 seconds since you will use only one file). Set BioniX to lock on any folder (let's say c:\Wallpapers). Inside that folder you put a single file called something like "My Wallpaper.jpg". BioniX will use that file as wallpaper every 60 seconds. Now, every time you want to change the wallpaper you replace the old "My Wallpaper.jpg" with your new file. BioniX will see the change you have done to the folder and apply the new file (within 60 seconds).


Let us know what you want to achieve with your script to get a better solution.

  • 1
    The question states that I am looking for the path to the current file, not looking to actively set it. That is pretty clear in my opinion what I am trying to achieve. Your solution only talks about setting it programmatically not if it returns the path. – cujo Nov 29 '17 at 16:16
  • 1
    @cujo - And my answer also tells you where to find the file - and gives you some warnings about your approach. – Rigel Nov 29 '17 at 16:25
  • I'm referring to"the solution" as your answer does not focus primarily on what the question asked and more on dynamically programming the environment – cujo Nov 29 '17 at 16:27
  • I read your answer, it adds no new information as to the location of the files that hasn't already been presented. And you talk about issues that do not matter. And the problems you present are outside the scope of the question. A path is a path, the aspect ratio does not matter. – cujo Nov 29 '17 at 16:34
  • 2
    @Empire - The scope of this 2 year old question, with an accepted answer, seems clear to me. The question was, "I need a similar command that returns the path(s) to the current image on the desktop background(s) that actually works in Windows 10 if one exists." which the accepted answer provided ( i.e. %AppData%\Microsoft\Windows\Themes\CachedFiles) – Ramhound Nov 29 '17 at 16:43

protected by Community Apr 13 '16 at 22:26

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.