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

Аватара пользователя
insurgent14@vk

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

Сообщение insurgent14@vk »

Не так давно идентичная тема создавалась в ветке Win8, теперь очередь подошла и для 10ки : )




Цитата:



Имеется огромное количество обоев на ЖД, средь которых попадаются не симпатичные изображения, следовательно которые хотелось бы немедленно удалить из коллекции пока не пришёл временной черёд другой картинки.

Нужен скрипт в контекстном меню на раб.столе, типа "Имя и расположение текущего файла фона" кликая по которому открывалась бы папка в проводнике с выделенным файлом и осталось только нажать кнопку delete, ещё лучше если сразу через контекстное меню можно было удалять текущий файл.

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



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

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

Сообщение Aquila »

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]
Вложения
WPTargetDir.zip
(1.29 КБ) 0 скачиваний
WPTargetDir.zip
(1.29 КБ) 0 скачиваний
Аватара пользователя
insurgent14@vk

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

Сообщение insurgent14@vk »

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

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

Сообщение Ladislaus »

Файл 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

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

Сообщение Ladislaus »

Вот
здесь
есть решение, которое работает и с кирилическими символами в пути к папке. Скачайте 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

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

Сообщение Iska »

Цитата Ladislaus:



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

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




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

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

Сообщение Ladislaus »

Цитата Iska:



Покажите файл реестра с параметром «TranscodedImageCache», где будет путь с кириллицей, и приведите сам этот путь. Посмотрим.
Доступ - [решено] Как найти текущее фоновое изображение рабочего стола?




Если не ошибаюсь это параметр TranscodedImageCache в разделе HKEY_CURRENT_USER\Control Panel\Desktop.

Путь выглядит так: "C:\Users\Владислав\OneDrive\Изображения\Фоновые изображения\Nature\фото (28).jpg"
Аватара пользователя
Aquila

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

Сообщение Aquila »

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

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

Сообщение Ladislaus »

Цитата Aquila:



insurgent14@vk, Всё открывается, как с именем img0.jpg, так и с абвгд.jpg. Также работает на Win8.1.
Доступ - [решено] Как найти текущее фоновое изображение рабочего стола?




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

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

Сообщение Aquila »

Ladislaus, Подумал, что раз с одним открывает, то и несколько не проблема, был неправ. А вот
Доступ - [решено] Как найти текущее фоновое изображение рабочего стола?
скрипт правильно работает.
Ответить

Вернуться в «Microsoft Windows 10»