Здесь есть еще один вопрос, который позволяет пользователям найти путь к текущему фоновому изображению с помощью команды cmd
.
Как я могу узнать путь к текущему изображению рабочего стола?
В Windows 10 это больше не работает. Возвращается только первое изображение в папке, оно не меняется вместе с фоновыми изображениями при их переходе. Мне нужна аналогичная команда, которая возвращает путь (пути) к текущему изображению на фоне (изображениях) рабочего стола, которая действительно работает в Windows 10, если такая существует.
Копию текущих обоев можно найти, набрав указанный ниже путь в адресной строке 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 папки
Установленные темы (Aero и т.д.):
%SystemRoot%\Resources\Themes
Установленные темы для каждого пользователя (включая предустановленные от OEM):
%LocalAppData%\Microsoft\Windows\Themes
Если вы ищете расположение изображений экрана блокировки - посетите этот вопрос SuperUser.
Лично я использую John's Background Switcher для управления фоном рабочего стола.
В John's Background Switcher есть возможность просматривать текущий/предыдущий фон рабочего стола (установленный самим приложением). Выполните следующие действия -
Чтобы активировать Windows Photo Viewer в Windows 10, посетите эту статью на HowToGeek.
Windows 8 и 10 по-прежнему хранят оригинальный путь к текущему фоновому изображению - а не кэшированный / перекодированный файл, как в ответе xypha':
HKEY_CURRENT_USER\Control Panel\Desktop\TranscodedImageCache
Однако Microsoft не хочет, чтобы все было просто: это не простой текст, поэтому вам придется декодировать его из двоичного кода.
На сайте Winhelponline собрана пара сценариев (VBA и PowerShell), которые могут вывести имя изображения и запустить Explorer, чтобы указать на файл изображения.
http://www.winhelponline.com/blog/find-current-wallpaper-file-path-windows-10/
Вы не объяснили, чего именно вы хотите добиться, поэтому я могу дать несколько советов, основываясь на предположении: вы хотите менять обои в определенных условиях (например, одни обои при каждой перезагрузке компьютера) или использовать настраиваемый файл в качестве обоев.
В 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 Desktop и рисуя прямо на его холсте. Именно так рисуются анимации GIF/AVI на рабочем столе.
Существует еще одна проблема, если вы создаете свой собственный сценарий: Как обрабатывать изображения, соотношение сторон которых не совпадает с соотношением сторон рабочего стола, или когда разрешение рабочего стола меняется?
Решением (если я правильно угадал вашу проблему) будет использование программы типа John's Background Switcher или BioniX Desktop Background Changer. Последняя гораздо более настраиваемая и может управляться через командную строку. Она также имеет функцию автоматического определения наилучшего способа изменения размера изображения (заливка/подгонка/плитка). BioniX также может рисовать GIF, не записывая ничего на диск (как объяснялось выше).
Еще лучшим способом будет использование опции "Lock on folder".
Установите BioniX на смену обоев каждые 60 секунд (не волнуйтесь, вы не будете видеть новые обои каждые 60 секунд, так как вы будете использовать только один файл). Установите BioniX на блокировку любой папки (допустим, C:\Wallpapers
). Внутри этой папки вы поместите один файл с названием что-то вроде My Wallpaper.jpg
. BioniX будет использовать этот файл в качестве обоев каждые 60 секунд. Теперь, каждый раз, когда вы хотите изменить обои, вы заменяете старый My Wallpaper.jpg
на новый файл. BioniX увидит изменения, которые вы сделали в папке, и применит новый файл (в течение 60 секунд).
Сообщите нам, чего вы хотите добиться с помощью вашего скрипта, чтобы получить лучшее решение.
Чтобы попасть в "выполняется" по пути в открытом виде, сделать это в 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'