Путь к текущему фону рабочего стола в Windows 10?

54

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

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

В Windows 10 это больше не работает. Он возвращает только первое изображение в папке, он не меняется вместе с фоном при их переходе. Мне нужна похожая команда, которая возвращает путь к текущему изображению на фоне рабочего стола, который действительно работает в Windows 10, если он существует.

cujo
источник

Ответы:

84

Копию текущих обоев можно найти, введя путь ниже в адресной строке Windows File Explorer.

Путь 1 -
%AppData%\Microsoft\Windows\Themes\CachedFiles

Если вы не нашли здесь копию своего текущего фонового изображения, попробуйте вместо этого путь

Путь 2 -
%AppData%\Microsoft\Windows\Themes\TranscodedWallpaper

Заметка : Файл TranscodedWallpaper в пути 2 нет расширения файла. Используйте «Открыть с помощью» или «Как вы хотите открыть этот файл?» диалоговое окно и выберите любое средство просмотра изображений, такое как «Windows Photo Viewer», «Honeyview» или приложение «Фотографии».

Примечание для Windows 10 : Вышеуказанные места имеют ограничения. Например, если искомые обои больше не отображаются на вкладке «Фон» в приложении «Настройки», вы не можете восстановить их. Это будет работать для ваших последних пяти обоев, но не старше. ( Источник )

Обои по умолчанию для Windows можно найти в

%SystemRoot%\Web

Вы увидите 3 папки

  • " 4K "для 4K обоев,
  • " экран "для фонов экрана блокировки & amp;
  • " Обои "для обоев по умолчанию для Windows

Установленные темы (Aero и т. Д.):

%SystemRoot%\Resources\Themes

Пользовательские темы (включая предустановленные от OEM):

%LocalAppData%\Microsoft\Windows\Themes  

Если вы ищете расположение изображений блокировки экрана - посетите этот вопрос суперпользователя ,

Лично я пользуюсь Фоновый переключатель Джона управлять фоном рабочего стола.

Переключатель фона Джона имеет опцию для текущих / предыдущих фонов рабочего стола (которые устанавливаются приложением). Щелкните правой кнопкой мыши значок в трее и выберите Посмотреть текущую картинку и текущий фон рабочего стола открывается в средстве просмотра фотографий Windows или в программе просмотра изображений по умолчанию). В средстве просмотра фотографий Windows вы можете щелкнуть правой кнопкой мыши на изображении & amp; Выбрать Откройте расположение файла просмотреть исходное местоположение текущего фона рабочего стола в проводнике Windows.

xypha
источник
Проблема с переключателем заключается в том, что мне нужен сценарий Python, чтобы иметь возможность опросить путь. Предыдущая команда прекрасно работала в Windows 7. Кроме того, этот новый путь даже не существует на моей машине с Windows 10.
cujo
добавил второй путь
xypha
Это не то, на что я надеялся, так как теперь я должен следить за изменениями свойств файла, но это работает. Спасибо
cujo
Этот метод не обеспечивает местоположение оригинальной фотографии, а скорее копию, которую Windows делает для подготовки к показу.
Edward Brey
@Edward Brey - используйте фоновый переключатель Джона (или несколько других переключателей / загрузчиков), чтобы переключать обои и находить исходное местоположение. Насколько мне известно, Windows 10 изначально не поддерживает его. Может быть, поднять его как запрос функции в Обратная связь Microsoft
xypha
5

У меня Windows 10, версия 1709. Один из других ответов заставил меня заглянуть в реестр, и я нашел именно то, что мне нужно, в виде открытого текста на

HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper

Не требуется расшифровка.

Jim
источник
я использую Bing Desktop менять обои. Я смог найти путь к этим изображениям обоев, используя это. Спасибо!
anacron
3

Windows 8 и 10 по-прежнему хранят оригинал путь к текущему фоновому изображению, а не кешированному / транскодированному файлу, как в ответе xypha:

HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache

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

Веб-сайт Winhelponline скомпилировал несколько сценариев (VBA и PowerShell), которые могут печатать имя изображения, и запустить проводник, чтобы указать на файл изображения.

http://www.winhelponline.com/blog/find-current-wallpaper-file-path-windows-10/

Iain S
источник
1
Это не работает с несколькими дисплеями. Не проверено с помощью одного дисплея.
cujo
0

Вы не объясняете, чего именно вы хотите достичь, поэтому я могу дать некоторые советы, основанные на предположении: вы хотите изменить свои обои в определенных условиях (например, один обои каждый раз при перезагрузке компьютера) или использовать обычай файл в качестве обоев.

В Windows 7 обои обычно находились в %AppData%\Microsoft\Windows\Themes\TranscodedWallpaper,
В Windows 10 вы найдете его в %AppData%\Microsoft\Windows\Themes\CachedFiles,

Вы также можете запросить реестр по адресу HKEY_CURRENT_USER \ Control Panel \ Desktop \ TranscodedImageCache, но обратите внимание на предупреждения ниже о программах, которые НЕ записывают файл на диск!

Если вы хотите создать свой собственный сценарий CMD, это может быть ненадежно, если вы устанавливаете обои не из Windows, а из внешней программы. Например, если я вижу хорошего мага в своем браузере, я устанавливаю его в качестве обоев прямо оттуда. То же самое для IrfanView. Я могу легко назвать еще 10 популярных программ, которые могут изменить обои на свой путь.

Обратите внимание, что некоторые программы меняют обои, фактически не записывая файл на диск. Это можно сделать, подключившись к окну рабочего стола Microsoft Windows и рисуя прямо на его холсте. Вот как GIF / AVI анимация рисуется на рабочем столе.

Существует другая проблема, если вы создаете свой собственный скрипт: как вы обрабатываете изображения, которые не имеют такое же соотношение сторон, как у вашего рабочего стола, или когда меняется разрешение рабочего стола?

Решение (если я угадал вашу проблему правильно) будет использовать такую ​​программу, как John Background Switcher или BioniX Настольный фоновый чейнджер , Последний гораздо более настраиваемый и может управляться из командной строки. Он также имеет автоопределение для определения наилучшего способа изменения размера изображения (заливка / подгонка / мозаика). BioniX также может рисовать GIF, ничего не записывая на диск (как описано выше).

Еще лучшим способом было бы использовать опцию «Lock on folder». enter image description here
Настройте BioniX на смену обоев каждые 60 секунд (не беспокойтесь, новые обои не будут появляться каждые 60 секунд, поскольку вы будете использовать только один файл). Установите BioniX для блокировки на любую папку (скажем, c: \ Wallpapers). Внутри этой папки вы помещаете один файл, который называется что-то вроде «My Wallpaper.jpg». BioniX будет использовать этот файл в качестве обоев каждые 60 секунд. Теперь каждый раз, когда вы хотите изменить обои, вы заменяете старый «My Wallpaper.jpg» новым файлом. BioniX увидит внесенные вами изменения в папку и применит новый файл (в течение 60 секунд).


Дайте нам знать, чего вы хотите достичь с помощью своего скрипта, чтобы получить лучшее решение.

Rigel
источник
1
В вопросе говорится, что я ищу путь к текущему файлу, а не пытаюсь его активно установить. На мой взгляд, совершенно ясно, чего я пытаюсь достичь. Ваше решение говорит только о программной настройке, а не о том, если оно возвращает путь.
cujo
1
@cujo - И мой ответ также говорит вам, где найти файл - и дает вам некоторые предупреждения о вашем подходе.
Rigel
Я имею в виду «решение», поскольку ваш ответ не фокусируется в первую очередь на том, что задан вопрос, а больше на динамическом программировании среды.
cujo
Я прочитал ваш ответ, он не добавляет никакой новой информации о расположении файлов, которые еще не были представлены. И вы говорите о проблемах, которые не имеют значения. И проблемы, которые вы представляете, выходят за рамки вопроса. Путь - это путь, соотношение сторон не имеет значения.
cujo
2
@Empire - объем этого двухлетнего вопроса с принятым ответом кажется мне понятным. Вопрос был в следующем: «Мне нужна похожая команда, которая возвращает путь к текущему изображению на фоне (-ах) рабочего стола, который действительно работает в Windows 10, если он существует». который принял принятый ответ (т.е. %AppData%\Microsoft\Windows\Themes\CachedFiles )
Ramhound
0

Чтобы получить «Транскодированный» путь в открытом виде, сделайте это в PowerShell:

$TIC=(Get-ItemProperty 'HKCU:\Control Panel\Desktop' TranscodedImageCache -ErrorAction Stop).TranscodedImageCache
[System.Text.Encoding]::Unicode.GetString($TIC) -replace '(.+)([A-Z]:[0-9a-zA-Z\\])+','$2'
not2qubit
источник