If you’re using the Desktop background slideshow or third-party wallpaper changer software and want to find the file name of the currently displayed desktop wallpaper, then this article is for you. The current wallpaper path is are stored in the registry but is not displayed in the modern Personalize settings page in Windows 10/11.
This post tells you how to find the current wallpaper file name and path in Windows 8, Windows 10, and Windows 11.
Find the current wallpaper (desktop background) file:
How to Find the Current Desktop Wallpaper
Here are five different methods to find the current desktop background (wallpaper) file name, starting with the easiest option.
Find the wallpaper image in your Themes folder in Windows 10/11
When you set a wallpaper of any image format, Windows converts that file to JPEG format and also sometimes reduces its quality. The converted wallpaper image may exist in one of the three different locations mentioned below, depending upon the method you used to set the wallpaper.
When you right-click on an image file and choose Set as desktop background in the context menu, a copy of the image file is converted and stored as TranscodedWallpaper
without file extension. The transcoded wallpaper is stored here:
%appdata%\Microsoft\Windows\Themes
Type the above folder path in the Run dialog or Explorer address bar to access the location.
All you need to do is copy the transcoded image from the above to a different location, add the .jpg
extension and use it.
If you used the Browse.. option in Personalize settings to set the desktop background, then the converted and up-scaled (matching your display resolution) version of the image is stored in the following directory.
%appdata%\Microsoft\Windows\Themes\CachedFiles
The file naming convention is like CachedImage_1920_1080_POS0.jpg
where the numbers indicate the current display resolution of 1920 x 1080. POS0 may indicate the monitor number (if using multiple monitors.)
In case you’ve set the desktop background wallpaper via Windows Photo Viewer, then the transcoded JPEG file is stored in the following folder as Windows Photo Viewer Wallpaper.jpg
, and the file path is written to the registry.
%AppData%\Roaming\Microsoft\Windows Photo Viewer
Note that the quality of the transcoded and converted (to JPEG) wallpaper may not be exactly the same as the original.
The registry value TranscodedImageCache
is updated in all of the above cases.
Using Desktop Background applet in Windows 10/11
The classic Desktop Background applet in Windows 10 shows the currently selected desktop background file name with the full path.
- Right-click Start, and click Run to bring up the Run dialog.
- Type the following command and press ENTER
shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageWallpaper
In Windows 10 this opens the classic desktop background applet, showing the current wallpaper image file and the folder path.
Using the Registry Editor in Windows 10/11
The reference to the current desktop wallpaper may exist in one or more locations in the registry.
Open the Registry Editor (regedit.exe
)
In the Registry Editor, there are the keys you need to check.
HKEY_CURRENT_USER\Control Panel\Desktop
Look for the value named Wallpaper
(Type: REG_SZ).
Look for the value named TranscodedImageCache
(Type: REG_BINARY)
TranscodedImageCache
is a binary value, but you can easily make out the file path by double-clicking the value and reading the data.
Another history location in Windows 10/11
Go to the following registry key which stores your desktop background history.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers
The BackgroundHistoryPath0 value lists the current wallpaper.
The values BackgroundHistoryPath1, BackgroundHistoryPath2, BackgroundHistoryPath3, BackgroundHistoryPath4 refer to the previous 4 wallpapers you used. The wallpaper history thumbnail images are shown on the Personalize background settings page in Windows 10.
Find the current wallpaper file using VBScript
We have an article that determines the Wallpaper source in Windows 7 (Refer: Add “Desktop Background File Location” Context Menu in Windows 7) but that script doesn’t work in Windows 8 and 10. This is because in Windows 8 and 10 the current Wallpaper source path is stored in a different registry branch. Moreover, in Windows 8 (and in early versions of Windows 10) Microsoft decided not to store the Wallpaper source path in plain text.
Our reader “raveren” came up with a script for Windows 8 and Windows 10. Check out the following link:
https://gist.github.com/raveren/ab475336cc69879a378b
Note that Unicode isn’t supported by VBScripts. These scripts won’t function correctly if the Wallpaper path contains non-English characters.
Find the current wallpaper file using PowerShell script
You can use PowerShell to decode the TranscodedImageCache
wallpaper filename. Here’s the command-line that does the job:
$TIC=(Get-ItemProperty 'HKCU:\Control Panel\Desktop' TranscodedImageCache -ErrorAction Stop).TranscodedImageCache [System.Text.Encoding]::Unicode.GetString($TIC) -replace '(.+)([A-Z]:[0-9a-zA-Z\\])+','$2'
Thanks to John Dangerbrooks for the following PowerShell script (supports Unicode) that helps you decode the TransCodedImageCache
registry value and locate/select the wallpaper file in File Explorer. The script works in Windows 7 through Windows 11. You may also read John’s blog post Finding wallpaper location in Windows | Confidential Files!.
The TranscodedImageCache
registry value shows the original/source image file name in the following cases:
- Set the desktop background via the image file’s right-click menu.
- Set the desktop background via Personalize settings.
- Set the desktop background via the classic Desktop Background applet.
There are several different ways to set the desktop background wallpaper in Windows. For all other methods (e.g., setting the desktop background via your web browser, Windows Photo Viewer, Photos app, etc.,), the TranscodedImageCache only stores the path of the converted (BMP or JPEG format) file path.
Context Menu (optional)
You can also add a “Find Current Wallpaper” command to the Desktop right-click menu using the .reg file below.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\DesktopBackground\Shell\DesktopBackgroundFileLocation] "icon"="shell32.dll,324" @="Find Current Wallpaper" [HKEY_CLASSES_ROOT\DesktopBackground\Shell\DesktopBackgroundFileLocation\command] @="powershell.exe -nologo -ExecutionPolicy Bypass -command find_current_wallpaper.ps1"
Copy the above contents to Notepad and save the file with the .reg extension. Then double-click the .reg file to run it.
Then, copy John’s PowerShell script file “find_current_wallpaper.ps1
” (mentioned earlier in this article) to the C:\Windows
folder.
Clicking on the option will start the PowerShell script which in turn locates the current desktop wallpaper for you quickly.
One small request: If you liked this post, please share this?
One "tiny" share from you would seriously help a lot with the growth of this blog. Some great suggestions:- Pin it!
- Share it to your favorite blog + Facebook, Reddit
- Tweet it!
Different path? Wow, that’s great news indeed. This means Microsoft has finally gotten rid of ActiveDesktop. Its death was long overdue.
Of course, REG_BINARY type makes even more sense in face of the need for performance.
Hmm. It is a sloppy script, I am afraid. It is not Unicode compliant, so if you have non-English Unicode characters (say, Arabic, Hebrew, Russian or Devanagari) in the path, you’ll get trash instead of a path. It has no error handling for cases when the Registry key is absent. And it reads the path in reverse and then reverses it. Why?
At this time, I don’t know anything about Unicode in VBScript but here is better revision:
Set Shell = CreateObject(“WScript.Shell”)
On Error Resume Next
arr = Shell.RegRead(“HKCU\Control Panel\Desktop\TranscodedImageCache”)
if Err.Number 0 then
MsgBox (“Error ” & CStr(Err.Number) & Chr(13) & Err.Description),,”Win8 WP Curr Image Name”
WScript.Quit
End if
On Error Goto 0
a=arr
strSingle = ” ”
strMulti = ” ”
For I = LBound(arr) To Ubound(arr)
a(I) = Cint(arr(I))
if I > 23 then
strSingle = Chr(a(I))
if a(I) > 0 then
strMulti = strMulti & strSingle
end if
end if
Next
msgbox (“The Wallpaper File Name is:”&Chr(13)&strMulti),,”Win8 WP Curr Image Name”
Wscript.Quit
Sorry for bumping but I am looking at my own comment above and it does not have non-equality sign in line four, although I copied and pasted the script. The blog form must have removed it as an invalid HTML tag.
FYI
HKCU\Control Panel\Desktop\TranscodedImageCache_###
is for people out there that have multiple monitors. It starts at 000 being monitor 1
My take on this same task:
I’ve made this VBS gist to work for Windows 8:
https://gist.github.com/raveren/ab475336cc69879a378b
Has anyone modified this script to work with dual/multiple monitors and show the wallpaper depending on which monitor is clicked?
Win 8.1.1 64bit keys:
HKCU\Control Panel\Desktop\TranscodedImageCache_000
HKCU\Control Panel\Desktop\TranscodedImageCache_001
etc
Having multiple monitors is no problem for me, thanks to this information. I have a shortcut on each monitor that runs the appropriate vbs file. I edited the file to have 000 for Monitor one’s file, 001 for monitor two’s file and so on. I double click the shortcut on the monitor I am interested in.
What is a problem, though, is that when my PC wakes from Sleep mode, the wallpaper slide show does not change. I can manually restart the change process by re-selecting the wallpaper options or by running this vbs file:
set WshShell = WScript.CreateObject(“WScript.Shell”)
WshShell.SendKeys(“^ “)
WshShell.SendKeys(“+{F10}”)
WshShell.SendKeys(“n”)
Any idea how I can force the wallpaper slide show to resume aftwer waking from Sleep?
Although this is now an old blog entry I thought it still worth making the following post. Until recently I’ve been running Windows 7 and a few years ago as an exercise had written a simple program running with a system tray icon to discover the path to the current desktop background image. When I upgraded to Windows 10 this no longer worked of course, so I went looking and found this blog. As a result, I’ve updated my program to work for Windows 8 and beyond and to work for different images for multi-monitor environments, while also maintaining backwards compatibility with Windows 7.
I’m sharing this program with the wider community in case anyone else likes the idea of having this as a system tray tool. It is written in C# and requires .Net framework v4, and is available as separate .zip files for x86 (32-bit) and x64 (64-bit) environments. There’s no installer, it’s just a simple executable with a readme file. Personally I start it automatically using the HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run key, but I leave that detail to you. More details are in the readme.
The zip files are located at: http://1drv.ms/1OoQRti
Many thanks for this, Duncan. I used to have a small program called ‘Filepath’ which gave the path of the desktop image, but it has disappeared during a rebuild. I’m delighted to have found your program.
Can you re-share the zip file?
Thanks. 🙂
@HPeixoto: I’ve fixed the download link. Pls check now.
u’re the best!
Thank you for this information. Finally, after a lot of searches and effort, you provided a solution to allow me to see the path where the photo being displayed on my desktop slideshow was saved!!!!!
Worked like a charm champ!
In Windows 7 you can locate at this path C:\Users\username\AppData\Roaming\Microsoft\Windows\Themes
Very useful, Thank you so much.
winkey+R = Run command
paste this ->
shell:::{ED834ED6-4B5A-4bfe-8F11-A626DCB6A921} -Microsoft.Personalization\pageWallpaper
Classsic window personalization will appear
find teh path above your current wallapaper.
Enjoy!
May God bless you!