Сделать произвольную/заданную картинку фоном Рабочего стола

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik

Ответить
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сделать произвольную/заданную картинку фоном Рабочего стола

Сообщение Flasher »

Посмотрел на старые решения (1, 2) и решил выложить свой скрипт без использования утилит:

Код: Выделить всё

'••••••••••••••••••••••••••••••••••••••••••••• VBS ••••••••••••••••••••••••••••••••••••••••••••••
' Сделать произвольный в заданной папке или подкурсорный файл фоновым изображением Рабочего стола
' Параметр: "<Путь к папке с картинками или к графическому файлу>"
' Примеры:  "%P"  |  %P%N  |  D:\MyWallpapers
'••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
Item = WSH.Arguments(0)
Set FSO = CreateObject("Scripting.FileSystemObject")
Filt = "*.bmp;*.gif;*.jpg;*.jpeg;*.png;*.tif;*.tiff"
If FSO.FileExists(Item) Then
  If InStr(Filt & ";*", "." & LCase(FSO.GetExtensionName(Item)) & ";*") Then File = Item Else WSH.Quit
ElseIf FSO.FolderExists(Item) Then
  Set Items = CreateObject("Shell.Application").NameSpace(Item).Items
  Items.Filter 73920, Filt
  Cnt = Items.Count : If Cnt = 0 Then WSH.Quit
  Randomize: File = Items.Item(CLng(Round(Rnd * (Cnt - 1), 0))).Path
Else WSH.Quit : End If
GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}").Item.document. _ 
Application.NameSpace(0).ParseName(File).InvokeVerb "setdesktopwallpaper"
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить