Как извлечь изображения Windows: интересное (Windows: spotlight) в Windows 10

В данной статье показаны действия, с помощью которых можно извлечь изображения Windows: интересное (Windows: spotlight) в операционной системе Windows 10.

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

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

По умолчанию изображения сохраняются в папку Assetst в профиле пользователя по следующему пути:

%USERPROFILE%\\AppData\\Local\\Packages\\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\\LocalState\\Assets

Скрипт №1 для извлечения изображений Windows: интересное (Windows: spotlight)

Данный скрипт создаёт папку "Spotlight Images" на рабочем столе и извлекает в неё все изображения Windows: spotlight.

Скачайте архив со скриптом spotlight_images.zip.

Скачать архив spotlight_images.zip.

Распакуйте архив в любом месте и запустите двойным кликом файл spotlight_images.vbs

Через несколько секунд на рабочем столе появится папка Spotlight Images, а в ней изображения Windows: spotlight из профиля пользователя.

Скрипт автоматически извлекает и даёт расширение *.jpg всем файлам из каталога Assets, некоторые из них и есть изображения «Windows: интересное» (Windows spotlight), которые загружаются с серверов майкрософт, но большинство из них не является фоновыми изображениями экрана блокировки.

Ниже представлен листинг файла сценария spotlight_images.vbs

Const ssfDESKTOPDIRECTORY = &h10
Dim FolderName
FolderName = "Spotlight Images"
Set oShell = CreateObject("Shell.Application")
strDesktop = oShell.NameSpace(ssfDESKTOPDIRECTORY).Self.Path
Dim oFSO, strAppData, objShell
Set objShell = CreateObject("WScript.Shell")

Set oFSO = CreateObject("Scripting.FileSystemObject")

objShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName)

strAppData=objShell.ExpandEnvironmentStrings("%LOCALAPPDATA%\\Packages\\
Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\\LocalState\\Assets")
oFSO.CopyFolder strAppData , strDesktop & "\\" & FolderName, True
Set objShell = Nothing
Set oFSO = Nothing
\' Extension -----------------------
sVBSPath = strDesktop & "\\" & FolderName

with createobject("wscript.shell")
.currentdirectory = sVBSPath
.run "%comspec% /c ren *. *.jpg", 0, true
end with
Set objShell = CreateObject("Wscript.Shell")
strPath = "explorer.exe /e," & strDesktop & "\\" & FolderName
objShell.Run strPath

Скрипт №2 для извлечения изображений Windows: интересное (Windows: spotlight)

Данный скрипт предложил пользователь VBS Expert. Скрипт также позволяет извлечь изображения «Windows: spotlight».

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

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

Скачайте архив со скриптом save_windows_spotlight.zip.

save_windows_spotlight.zip.

Извлеките файл скрипта из архива, например на рабочий стол, перетащите на файл скрипта "SavePics.vbs" любую папку в которую вы пожелаете скопировать изображения.

Ниже представлен листинг файла сценария save_windows_spotlight.vbs

\'save_windows_spotlight.vbs
\'Copyright (c)

Dim User, Path, Path2, msgStr

User = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPROFILE%")
Path = User & "\\AppData\\Local\\Packages\\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\\LocalState\\Assets"

With WScript.Arguments
If .Count <> 0 Then
Path2 = .Item(0)
msgStr = "Все содержимое будет скопировано в " & Path2
Else
Path2 = User & "\\Desktop"
msgStr = "Все содержимое будет скопировано на рабочий стол."
End If
End With

With CreateObject("Scripting.FileSystemObject")
If .FolderExists(Path) Then
If .GetFolder(Path).Files.Count <> 0 Then
If .FolderExists(Path2) Then
If MsgBox(msgStr & VbCrLf & "Продолжить?", 4 + 32, "Ваш выбор") = VbYes Then
For Each f In .GetFolder(path).Files
.CopyFile Path & "\\" & f.Name, Path2 & "\\" & f.Name & ".jpg"
Next
End If
Else
MsgBox "Папки " & Path2 & " не существует.", 16, "Ошибка"
End If
Else
MsgBox "По каким-то причинам папка пуста.", 16, "Ошибка"
End If
Else
MsgBox "Заданной папки не существует.", 16, "Ошибка"
End If
End With

WinNOTE
Добавить комментарий

  1. шуста

    просто супер . классный сайт . теперь это мой сайт

    Ответить
  2. VBS Expert

    "Скрипт автоматически извлекает и даёт расширение jpg всем файлам из каталога Assets, и некоторые из них не являются изображениями. "
    Еще как являются т.к. SHA-1 совпадает с изображениями.
    Ваш или чей-то код содержит грубые ошибки, вместо того чтобы использовать цикл на перебор коллекции (For Each), используется тупое копирование папки(oFSO.CopyFolder strAppData , strDesktop & "\\" & FolderName, True) и добавление расширения для файлов вызвав командную строку(.run "%comspec% /c ren *. *.jpg", 0, true),
    поэтому при повторном запуске "spotlight_images.vbs" копировании папки создаются дубликаты файлов без расширения(из-за того, что в командной строке ren сообщает что "Файл с таким именем уже существует или не найден.") в то время рациональнее было перебирать коллекцию и в самом цикле присваивать расширение при копировании каждого файла в новое место и без дубликатов(т.к. каждый файл из коллекции если он существует будет перезаписан).
    Вообщем, код низкого качества.
    P.S. Тот кто писал этот код, его знания очень поверхностны, или это школота :)))

    Ответить
  3. winnote

    Код не мой, а с одного бурж сайта.
    Вашу критику принял 🙂
    Предложите свой вариант кода!

    Ответить
  4. VBS Expert

    ' SavePics.vbs
    ' Copyright (c) 2018 Fyan <fyanur_@live.ru>
    Dim User, Path, Path2, msgStr
    User = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%USERPRO
    FILE%")
    Path = User & "\\AppData\\Local\\Packages\\Microsoft.Windows.ContentDeliveryManager_cw5n
    1h2txyewy\\LocalState\\Assets"
    With WScript.Arguments
    If .Count <> 0 Then
    Path2 = .Item(0)
    msgStr = "Все содержимое будет скопировано в " & Path2
    Else
    Path2 = User & "\\Desktop"
    msgStr = "Все содержимое будет скопировано на рабочий стол."
    End If
    End With
    With CreateObject("Scripting.FileSystemObject")
    If .FolderExists(Path) Then
    If .GetFolder(Path).Files.Count <> 0 Then
    If .FolderExists(Path2) Then
    If MsgBox(msgStr & VbCrLf & "Продолжить?", 4 + 32, "Ваш выбор") = VbYes Then
    For Each f In .GetFolder(path).Files
    .CopyFile Path & "\\" & f.Name, Path2 & "\\" & f.Name & ".jpg"
    Next
    End If
    Else
    MsgBox "Папки " & Path2 & " не существует.", 16, "Ошибка"
    End If
    Else
    MsgBox "По каким-то причинам папка пуста.", 16, "Ошибка"
    End If
    Else
    MsgBox "Заданной папки не существует.", 16, "Ошибка"
    End If
    End With

    Ответить
  5. VBS Expert

    Логика кода такая: Пользователь может 2х кликом просто согласиться на то, что все скопируется на рабочий стол, или перетащить на SavePics.vbs любую папку в которую он пожелает скопировать.
    При повторном запуске как Я и говорил уже существующие файлы будут перезаписаны(полезно если испорчены).

    Ответить
  6. winnote

    Спасибо за код! в ближайшее время отредактирую статью.

    Ответить
  7. Imagine

    Немного не в тему.
    После обновления Windows 11 KB5014019 (build 22000.708) появилась новая функция в персонализации фона рабочего стола — Windows Spotlight на рабочем столе.
    Где на этот раз прячут загружённые обои?

    Ответить