对于 Windows 8,我如何找出当前桌面图像的路径

Sco*_*ish 11 desktop-customization windows-8

最近升级到 Windows 8 后,我检索当前桌面墙纸图像的脚本已损坏。

对于 Windows 7,如何找到当前桌面图像的路径?,这很好用。但是,该注册表项现在始终包含

C:\Windows\web\wallpaper\Windows\img0.jpg
Run Code Online (Sandbox Code Playgroud)

什么是用于 Windows 8 的新注册表项?

我找到了两种可能的解决方案。

首先,这个键包含看起来像 Base64 编码的路径:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Images\ID2
Run Code Online (Sandbox Code Playgroud)

然后是“自定义主题属性文件”,其中还包含一个“[幻灯片]”部分,看起来像 Base64:

C:\Users\Scott\AppData\Local\Microsoft\Windows\Themes\Custom.theme
Run Code Online (Sandbox Code Playgroud)

Sco*_*ish 11

下面的两个注册表项都存储了当前壁纸图片的原始路径:

HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache
HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache_000
Run Code Online (Sandbox Code Playgroud)

它们采用 Unicode 格式,解码后,您将拥有当前壁纸图像的完整路径。

  • 只是对任何弄乱这个问题的人进行澄清:该值在前 24 个字节中包含非字符串数据,其余数据是 Unicode 编码的空终止 (\0) 字符串。快乐解析。 (3认同)
  • 完整的双线 powershell:`$bytes=(New-Object -ComObject WScript.Shell).RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache_000"); $path=([System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)]) -split "\0")[0]` (2认同)

小智 6

  1. 转到 Windows 运行命令 (WinLogo+R)
  2. 输入:%AppData%
  3. 在“漫游”文件夹中,转到“Microsoft”,然后转到“Windwows”,然后转到“主题”,最后转到“CachedFiles”
  4. 复制壁纸文件。