Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 10 (http://forum.oszone.net/forumdisplay.php?f=118)
-   -   [решено] Как найти текущее фоновое изображение рабочего стола? (http://forum.oszone.net/showthread.php?t=316383)

insurgent14@vk 01-07-2016 23:07 2647341

Как найти текущее фоновое изображение рабочего стола?
 
Не так давно идентичная тема создавалась в ветке Win8, теперь очередь подошла и для 10ки : )

Цитата:

Имеется огромное количество обоев на ЖД, средь которых попадаются не симпатичные изображения, следовательно которые хотелось бы немедленно удалить из коллекции пока не пришёл временной черёд другой картинки.
Нужен скрипт в контекстном меню на раб.столе, типа "Имя и расположение текущего файла фона" кликая по которому открывалась бы папка в проводнике с выделенным файлом и осталось только нажать кнопку delete, ещё лучше если сразу через контекстное меню можно было удалять текущий файл.
Безуспешно ищу решение моей проблемы на протяжении нескольких дней как только пересел на Windows 8.1 с 7, где, между прочим, эту фитчу можно было настроить в считанные секунды имея необходимые файлы вносящие определённые параметры в реестр. Если тоже самое проделать на Win 8.1 то при запуске данной команды выводиться сообщение фоновое изображение не используется.
п.с. из прошлой темы ключ не подходит. Напишите для 10ки

Aquila 02-07-2016 03:26 2647369

Вложений: 1
insurgent14@vk, Актуализировал для Win10.

1) Создайте в папке C:\Windows текстовый файл указанного ниже содержания и сохраните его с именем WPTargetDir.vbs.
Код:

Set WshShell = WScript.CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
strMsg = "Выполнено!"
strCurWP =""

On Error Resume Next
strCurWP = WshShell.RegRead("HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper")
On Error Goto 0

If Trim(strCurWP) = "" Then
        MsgBox "Фоновое изображение не используется."
Else
        If fso.FileExists(strCurWP) Then
                WshShell.run "explorer.exe" & " /select," & strCurWP
        Else
                MsgBox "Указанный файл отсутствует: " & strCurWP
        End If
End If


2) Для добавления пункта Имя и расположение текущего файла фона в контекстное меню рабочего стола, создайте и примените reg-файл следующего содержания:
Код:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\WPTargetDir]
"icon"="imageres.dll,108"
@="Имя и расположение текущего файла фона"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\WPTargetDir\command]
@=hex(2):77,00,73,00,63,00,72,00,69,00,70,00,74,00,2e,00,65,00,78,00,65,00,20,\
  00,22,00,25,00,57,00,69,00,6e,00,44,00,69,00,72,00,25,00,5c,00,57,00,50,00,\
  54,00,61,00,72,00,67,00,65,00,74,00,44,00,69,00,72,00,2e,00,76,00,62,00,73,\
  00,22,00,00,00


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

2) Для удаления пункта Имя и расположение текущего файла фона из контекстного меню рабочего стола, создайте и примените reg-файл следующего содержания:
Код:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\DesktopBackground\Shell\WPTargetDir]


insurgent14@vk 03-07-2016 07:58 2647566

Почему-то у меня открывается папка с темами, а точнее C:\Users\ANTON\AppData\Roaming\Microsoft\Windows\Themes где и хранится кэш текущего изображения : /

Ladislaus 03-07-2016 11:53 2647601

Файл vbs вот такого содержания вроде бы работает, но, опять же, путь к паке должен быть только с английскими символами:
Код:

Const HKCU = &H80000001 'HKEY_CURRENT_USER

sComputer = "." 

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
            & sComputer & "\root\default:StdRegProv")

sKeyPath = "Control Panel\Desktop\"
sValueName = "TranscodedImageCache"
oReg.GetBinaryValue HKCU, sKeyPath, sValueName, sValue


sContents = ""

For i = 24 To UBound(sValue)
  vByte = sValue(i)
  If vByte <> 0 And vByte <> "" Then
    sContents = sContents & Chr(vByte)
  End If
Next

CreateObject("Wscript.Shell").Run "explorer.exe /select,""" & sContents & """"


Ladislaus 03-07-2016 12:42 2647607

Вот здесь есть решение, которое работает и с кирилическими символами в пути к папке. Скачайте Add_Desktop-Background-File-Location_context_menu.zip, распакуйте архив, поместите Find_Desktop_Background.ps1 и Find_Desktop_Background.vbs файлы в папку C:\Windows\System32 и запустите Add_Desktop-Background-File-Location_context_menu.reg файл для добавления пункта в контекстное меню рабочего стола.

Iska 03-07-2016 12:57 2647611

Цитата:

Цитата Ladislaus
но, опять же, путь к паке должен быть только с английскими символами:
»

Покажите файл реестра с параметром «TranscodedImageCache», где будет путь с кириллицей, и приведите сам этот путь. Посмотрим.

Ladislaus 03-07-2016 13:40 2647617

Цитата:

Цитата Iska
Покажите файл реестра с параметром «TranscodedImageCache», где будет путь с кириллицей, и приведите сам этот путь. Посмотрим. »

Если не ошибаюсь это параметр TranscodedImageCache в разделе HKEY_CURRENT_USER\Control Panel\Desktop.
Путь выглядит так: "C:\Users\Владислав\OneDrive\Изображения\Фоновые изображения\Nature\фото (28).jpg"

Aquila 03-07-2016 13:43 2647618

insurgent14@vk, Всё открывается, как с именем img0.jpg, так и с абвгд.jpg. Также работает на Win8.1.

Ladislaus 03-07-2016 16:12 2647651

Цитата:

Цитата Aquila
insurgent14@vk, Всё открывается, как с именем img0.jpg, так и с абвгд.jpg. Также работает на Win8.1. »

Предположил, что я не внимательно выполнил, то, что вы описали здесь, после чего заново создавал в папке C:\Windows файл WPTargetDir.vbs несколько раз. По какой-то причине вместо папки с текущим изображением открывается папка %AppData%\Microsoft\Windows\Themes с выделенным файлом TranscodedWallpaper, на это кажется указывает и автор темы. Но, если в качестве фона рабочего стола выбрать не слайд-шоу, а одно изображение, то как и положено открывается папка с этим выделенным файлом. Естественно, в этом случае, при отсутствии слайд-шоу, смысл в пункте в контекстном меню для нахождения текущего фонового изображения несколько теряется.

Aquila 03-07-2016 21:38 2647711

Ladislaus, Подумал, что раз с одним открывает, то и несколько не проблема, был неправ. А вот Ваш скрипт правильно работает.

insurgent14@vk 04-07-2016 10:58 2647823

Всем спасибо. Шифровка Ladislaus'a действует. Кстати, метод Add_Desktop-Background-File-Location_context_menu.zip пробовал, но он не понравился тем, что долго думает перед тем как запросить разрешение открыть папку с файлом и из-за ожидания возможна смена слайда.


Время: 17:06.

Время: 17:06.
© OSzone.net 2001-