Tendo atualizado recentemente para o Windows 8, meu script para recuperar a imagem atual do papel de parede da área de trabalho foi quebrado.
No Windows 7, como descobrir o caminho para a imagem da área de trabalho atual? , isso funciona muito bem. No entanto, essa chave do registro agora sempre contém
C:\Windows\web\wallpaper\Windows\img0.jpg
Qual é a nova chave do Registro usada no Windows 8?
Eu encontrei duas soluções possíveis.
Primeiramente, essa chave contém o que parece um caminho codificado em Base64:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Wallpapers\Images\ID2
E existe o "arquivo de propriedades do tema personalizado", que também contém uma seção "[SlideShow]" que se parece com Base64:
C:\Users\Scott\AppData\Local\Microsoft\Windows\Themes\Custom.theme
windows-8
desktop-customization
Scott Bennett-McLeish
fonte
fonte
Respostas:
As duas chaves do registro abaixo armazenam o caminho original da imagem de papel de parede atual:
Eles estão no formato Unicode, ao decodificar isso, um terá o caminho completo para a imagem atual do papel de parede.
fonte
[System.Text.Encoding]::Unicode.GetString($bytes[24..($bytes.length-1)])
, assumindo que$bytes
contenha o valor da chave$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]
fonte
Verifique o valor
HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper
REG_SZ (string). Isso mostrará o caminho para o TranscodedWallpaper.jpg atualmente em uso.fonte
Para o Windows 8 ou posterior, você pode iniciar este arquivo vbs:
https://gist.github.com/raveren/ab475336cc69879a378b
Ou use este script de autohotkey:
http://www.autohotkey.com/board/topic/111813-open-current-wallpaper-under-mouse-in-windows-8/
Ambos criados por mim.
fonte
No Windows 8 e 8.1 (e, supostamente, 10), se você definiu seu papel de parede no Windows Picture Viewer (abrindo uma imagem no Viewer e clicando em "Definir como papel de parede da área de trabalho" no menu de contexto), sua localização será
fonte
Na minha situação, tenho uma enorme pasta de imagens que meu papel de parede percorre. Fico entediado com alguns depois de um tempo e quero excluí-los ou, às vezes, fico imaginando qual é o nome da imagem porque ela pode ter a descrição da imagem.
Criei 2 scripts com base nos comentários acima - um para obter o caminho da imagem atual e outro para excluí-lo. Só testei isso no Windows 10.
Obter o caminho da imagem (getwallpaper.ps1)
Excluir a imagem (deletewallpaper.ps1)
fonte
C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Themes
.TranscodedWallpaper
<NAME>.JPG
fonte