Как я могу узнать путь к текущему изображению рабочего стола для Windows 8

недавно обновившись до Windows 8, мой скрипт для получения текущего обои для рабочего стола изображение сломалось.

Для Windows 7, как узнать путь к текущему изображению рабочего стола?, это прекрасно работает. Однако этот раздел реестра теперь всегда содержит

C:WindowswebwallpaperWindowsimg0.jpg

что нового раздела реестра для Windows 8?

Я нашел два возможных решения.

во-первых, этот ключ содержит то, что выглядит как путь в кодировке Base64:

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerWallpapersImagesID2

а затем есть "файл свойств пользовательской темы", который также содержит раздел "[слайд-шоу]", который выглядит как Base64:

C:UsersScottAppDataLocalMicrosoftWindowsThemesCustom.theme
18
задан Community
11.03.2023 17:44 Количество просмотров материала 2462
Распечатать страницу

7 ответов

два раздела реестра ниже обоих хранят исходный путь текущего фонового рисунка:

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

они в формате Юникод, после декодирования, что, один будет иметь полный путь к текущему изображению обоев.

9
отвечен Scott Bennett-McLeish 2023-03-13 01:32
  1. перейти к Windows выполнить команду (WinLogo+R)
  2. введите: %AppData%
  3. в папку Roaming', к 'Майкрософт', затем 'Windwows', затем 'темы', и наконец 'CachedFiles'
  4. скопируйте файл обоев.
3
отвечен Gilbert 2023-03-13 03:49

Регистрация HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper значение REG_SZ (string). Это покажет вам путь к TranscodedWallpaper.jpg в настоящее время используется.

2
отвечен Karan 2023-03-13 06:06

для windows 8 или более поздней версии вы можете запустить этот файл vbs:

https://gist.github.com/raveren/ab475336cc69879a378b

или используйте этот скрипт autohotkey:

http://www.autohotkey.com/board/topic/111813-open-current-wallpaper-under-mouse-in-windows-8/

оба созданы мной.

2
отвечен Raveren 2023-03-13 08:23

в Windows 8 и 8.1 (и, как сообщается, 10), если вы установили обои из средства просмотра изображений Windows (открыв изображение в средстве просмотра и нажав "установить в качестве обоев рабочего стола" в контекстном меню), его местоположение будет

%AppData%\Roaming\Microsoft\Windows Photo Viewer\Windows Photo Viewer Wallpaper.jpg
2
отвечен Artanis 2023-03-13 10:40
  1. на C:\Users\<USERNAME>\AppData\Roaming\Microsoft\Windows\Themes.
  2. Создать копию TranscodedWallpaper
  3. переименуйте копию в <NAME>.JPG

протестировано на Windows 10

1
отвечен keinabel 2023-03-13 12:57

в моей ситуации у меня есть огромная папка изображений, которые мои обои циклы через. Мне скучно от некоторых через некоторое время и хотите удалить их, или иногда я просто интересно, что имя изображения, потому что он может иметь описание изображения.

Я построил 2 скрипта на основе обратной связи выше-один, чтобы получить текущий путь изображения и один, чтобы удалить его. Только проверил это на Windows 10.

получить путь к изображению (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');

удалить изображение (deletewallpaper.пс1)

$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)
0
отвечен Chris Smith 2023-03-13 15:14

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх