Я пытаюсь извлечь фоновое изображение Windows 10 Logon (из «Центра внимания Windows») и скопировать его в другое место для дальнейшего использования. До сих пор я успешно делал это, используя код пакета, указанный ниже.
@echo off
for /F "skip=6 tokens=2*" %%A in ('REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Creative\ /F landscapeImage /S /V') DO (
for %%F in (%%B) do (
set Background=%%F
goto :next
)
)
:next
copy %Background% "d:\background.jpg" /Y
Больше всего меня беспокоит то, что хотя на моем компьютере это работало хорошо, структура реестра на других компьютерах могла бы выглядеть по-другому , и мой код к этому совершенно не подготовлен.
Причиной этого может быть слепое предположение с параметром skip=6
. Поиск в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI\Creative\
для landscapeImage
дал 3 результата, и только последний приводит к изображению, которое я вижу на странице входа. Поскольку я не знал, как выбрать конкретный результат поиска, я использовал параметр skip
, но по этой причине пакетный сценарий будет работать правильно только в том случае, если будет найдено как минимум 3 результата поиска, а третий - тот, который я ' я на самом деле ищу - в других случаях он просто потерпит неудачу.
Подводя итог, я не знаю, как:
Проверьте, сколько результатов поиска возвращается из команды REG QUERY
.
Выберите конкретный результат поиска.
Другая проблема (не связанная с проблемой пакетного скрипта, описанной выше) заключается в том, что я не уверен, как Windows решает, какое изображение используется в качестве фона (оно регулярно меняется). Я просто предположил, что это последний из результатов поиска (это было верно в моем случае). Я не смог найти никаких других упоминаний файла фонового изображения в реестре. Я попытался найти другие параметры из этого ключа, но это также не дало никаких результатов. Любые предложения по этой проблеме также приветствуются.
Это лучшее, что я мог придумать, но теперь я просто застрял.