Como eu poderia descobrir o caminho para a imagem atual da área de trabalho, para o Windows 8

9

Tendo recentemente atualizado para o Windows 8, meu script para recuperar a imagem atual do papel de parede da área de trabalho foi interrompido.

Para o Windows 7, Como posso descobrir o caminho para a imagem atual da área de trabalho? , isso funciona muito bem. No entanto, essa chave de registro agora sempre contém

C:\Windows\web\wallpaper\Windows\img0.jpg

Qual é a nova chave de registro usada para o Windows 8?

Encontrei duas soluções possíveis.

Em primeiro lugar, esta chave contém o que parece ser um caminho codificado em Base64:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Images\ID2

E, em seguida, há o "arquivo de propriedades do tema personalizado", que também contém uma seção "[SlideShow]" que se parece com a Base64:

C:\Users\Scott\AppData\Local\Microsoft\Windows\Themes\Custom.theme
    
por Scott Bennett-McLeish 19.11.2012 / 08:47

7 respostas

9

As duas chaves de registro abaixo armazenam o caminho original da imagem de papel de parede atual:

HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache
HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache_000

Eles estão no formato Unicode, após a decodificação, um deles terá o caminho completo para a imagem atual do papel de parede.

    
por 21.11.2012 / 00:01
3
  1. Ir para o comando Executar do Windows (WinLogo + R)
  2. Digite:% AppData%
  3. Na pasta "Roaming", vá para "Microsoft", "Windwows", depois "Themes" e, por último, "CachedFiles"
  4. Copie o arquivo de papel de parede.
por 18.06.2015 / 09:45
2

Verifique o valor HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper REG_SZ (string). Isso mostrará o caminho para o TranscodedWallpaper.jpg em uso no momento.

    
por 20.11.2012 / 16:20
2

Para o Windows 8 ou posterior, você pode iniciar este arquivo vbs:

link

Ou use este script autohotkey:

link

Ambos criados por mim.

    
por 25.06.2014 / 15:38
2

No Windows 8 e 8.1 (e, supostamente, 10), se você definiu seu papel de parede no Windows Picture Viewer (abrindo uma imagem no Visualizador e clicando em "Definir como papel de parede" no menu de contexto), sua localização seja

%AppData%\Roaming\Microsoft\Windows Photo Viewer\Windows Photo Viewer Wallpaper.jpg
    
por 20.05.2014 / 09:11
1
  1. Ir para C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Themes .
  2. Crie uma cópia de TranscodedWallpaper
  3. Renomeie a cópia para <NAME>.JPG

Tested on Windows 10

    
por 16.05.2017 / 10:21
0

Na minha situação eu tenho uma enorme pasta de imagens que meu papel de parede percorre. Fico entediado depois de algum tempo e quero apagá-los ou às vezes fico imaginando qual é o nome da imagem porque ela pode ter a descrição da imagem.

Eu construí 2 scripts com base no feedback acima - um para obter o caminho da imagem atual e um para excluí-lo. Só testei isso no Windows 10.

Obtenha o caminho da imagem (getwallpaper.ps1)

$bytes=(New-Object -ComObject WScript.Shell).RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache")
$wallpaperpath=[System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)])
$wallpaperpath=$wallpaperpath.substring(0, $wallpaperpath.IndexOf("jpg", 0, $wallpaperpath.Length)+3)
write-output $wallpaperpath
Write-Host -NoNewLine 'Press any key to continue...';
$null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown');

Excluir a imagem (deletewallpaper.ps1)

$bytes=(New-Object -ComObject WScript.Shell).RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache")
$wallpaperpath=[System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)])
$wallpaperpath=$wallpaperpath.substring(0, $wallpaperpath.IndexOf("jpg", 0, $wallpaperpath.Length)+3)
write-output $wallpaperpath
Write-Host -NoNewLine 'Delete the file (y=yes)?'
$KeyOption = 'Y','N'
while ($KeyOption -notcontains $KeyPress.Character) {
 $KeyPress = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
 if($KeyPress.Character -eq 'y') { Remove-Item $wallpaperpath }
}
Write-Host
[Environment]::Exit(0)
    
por 07.11.2016 / 23:11