如果我将图片设置为桌面墙纸,然后删除该图片。如何获取当前的桌面墙纸图像文件? 我知道注册表项“ HKEY_CURRENT_USER \ Control Panel \ Desktop \ Wallpaper ”存储了一个路径。但是win7和win10之间有所不同。
因此,我无法读取注册表项来获取墙纸路径,在win10中没有用。有人有解决方案吗?
答案 0 :(得分:0)
将图像设置为桌面背景时,将对其进行转换以匹配屏幕和位置首选项,例如填充,缩放,适合等。源图像的路径在以下注册表中以名为TranscodedImageCache的二进制值编写密钥:
HKEY_CURRENT_USER\Control Panel\Desktop
到注册表中作为二进制值的源图像的路径。
要从TranscodedImageCache值提取图像的路径,您需要运行以下脚本:
Const HKCU = &H80000001 'HKEY_CURRENT_USER
sComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
& sComputer & "\root\default:StdRegProv")
sKeyPath = "Control Panel\Desktop\"
sValueName = "TranscodedImageCache"
oReg.GetBinaryValue HKCU, sKeyPath, sValueName, sValue
sContents = ""
For i = 24 To UBound(sValue)
vByte = sValue(i)
If vByte <> 0 And vByte <> "" Then
sContents = sContents & Chr(vByte)
End If
Next
CreateObject("Wscript.Shell").Run "explorer.exe /select,""" & sContents & """"
您可以将此文本粘贴到记事本中,然后将其另存为VBS文件