How to Find the Current Wallpaper File Name and Path in Windows 8 and 10

Finding the currently displayed wallpaper file name or path is not a straight forward task in Windows, especially if you have desktop slideshow enabled. This is because Windows copies the source image to a different location and renames it as TranscodedWallpaper.JPG, and marks the reference in the registry. This post tells you how to find the current wallpaper file name and path in Windows 8 and higher.

Find the Current Wallpaper File Manually

Press WinKey + R 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.

classic desktop background panel windows 10

If you need to delete the file, make a note of the folder path and the file name (shown when hovering your mouse pointer over the thumbnail image), browse the folder using File Explorer and delete the file.

Using Vbscript

We have an article that determines the Wallpaper source in Windows 7 (REF: 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 10 Microsoft decided not to store the Wallpaper source path in plain-text. Thanks to Dwight Grant for his vbscript, and John Dangerbrooks for the PowerShell script (to support Unicode).

The scripts read the Wallpaper path/filename from the following registry branch, stored in a REG_BINARY value named TranscodedImageCache:

HKEY_CURRENT_USER\Control Panel\Desktop

Download, extract and run the enclosed script file.

Using PowerShell Script – Supports Unicode

Note that Unicode isn’t supported by the above script (nor does my earlier script for Windows 7). These scripts won’t function correctly if the Wallpaper path contains non-english characters. Thanks to John Dangerbrooks for the PowerShell script that helps you find the wallpaper location in Windows 7, 8 and 10. You may check them out in his blog post Finding wallpaper location in Windows | Confidential Files!.

I’ve added John’s PowerShell script and other files in a zip file.

1. Download (for Windows 8 and 10) unzip and extract the contents to Desktop.

2. Move the files Find_current_wallpaper.ps1 & Find_current_wallpaper.vbs to the C:\Windows directory.

3. Double-click the file Find_current_wallpaper.reg to add Desktop Background File Location option to the Desktop context menu.

This when clicked, runs the PowerShell script that gets the current Wallpaper name and displays it, and offers to launch File Explorer with the current Wallpaper image selected.

To launch the folder containing the current Wallpaper, click Yes.

Related Post: How to Find the Current Lock Screen Image File Name in Windows 10?

About the author

Ramesh Srinivasan founded back in 2005. He is passionate about Microsoft technologies and has a vast experience in the ITeS industry — delivering support for Microsoft's consumer products. He has been a Microsoft MVP [2003 to 2012] who contributes to various Windows support forums.

12 thoughts on “How to Find the Current Wallpaper File Name and Path in Windows 8 and 10”

  1. 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.

  2. 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”
    End if
    On Error Goto 0

    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

    msgbox (“The Wallpaper File Name is:”&Chr(13)&strMulti),,”Win8 WP Curr Image Name”

  3. 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.

  4. FYI

    HKCU\Control Panel\Desktop\TranscodedImageCache_###

    is for people out there that have multiple monitors. It starts at 000 being monitor 1

  5. 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

  6. 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(“^ “)

    Any idea how I can force the wallpaper slide show to resume aftwer waking from Sleep?

  7. 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:

    • 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.

Comments are closed.