PDA

Показать полную графическую версию : [решено] Как найти текущее фоновое изображение рабочего стола?


insurgent14@vk
01-07-2016, 23:07
Не так давно идентичная тема создавалась в ветке Win8, теперь очередь подошла и для 10ки : )

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

п.с. из прошлой темы ключ не подходит. Напишите для 10ки

Aquila
02-07-2016, 03:26
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
Почему-то у меня открывается папка с темами, а точнее C:\Users\ANTON\AppData\Roaming\Microsoft\Windows\Themes где и хранится кэш текущего изображения : /

Ladislaus
03-07-2016, 11:53
Файл 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
Вот здесь (http://www.tenforums.com/tutorials/39548-desktop-background-file-location-context-menu-add-windows-8-10-a.html) есть решение, которое работает и с кирилическими символами в пути к папке. Скачайте 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
но, опять же, путь к паке должен быть только с английскими символами:
»
Покажите файл реестра с параметром «TranscodedImageCache», где будет путь с кириллицей, и приведите сам этот путь. Посмотрим.

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

Aquila
03-07-2016, 13:43
insurgent14@vk, Всё открывается, как с именем img0.jpg, так и с абвгд.jpg. Также работает на Win8.1.

Ladislaus
03-07-2016, 16:12
insurgent14@vk, Всё открывается, как с именем img0.jpg, так и с абвгд.jpg. Также работает на Win8.1. »
Предположил, что я не внимательно выполнил, то, что вы описали здесь (http://forum.oszone.net/post-2647369.html#post2647369), после чего заново создавал в папке C:\Windows файл WPTargetDir.vbs несколько раз. По какой-то причине вместо папки с текущим изображением открывается папка %AppData%\Microsoft\Windows\Themes с выделенным файлом TranscodedWallpaper, на это кажется указывает и автор темы. Но, если в качестве фона рабочего стола выбрать не слайд-шоу, а одно изображение, то как и положено открывается папка с этим выделенным файлом. Естественно, в этом случае, при отсутствии слайд-шоу, смысл в пункте в контекстном меню для нахождения текущего фонового изображения несколько теряется.

Aquila
03-07-2016, 21:38
Ladislaus, Подумал, что раз с одним открывает, то и несколько не проблема, был неправ. А вот Ваш (http://forum.oszone.net/post-2647601-4.html) скрипт правильно работает.

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




© OSzone.net 2001-2012