Тема: VBScript: изменение рисунка рабочего стола без перезагрузки компьютера
Решение основано на вызове функции SystemParametersInfo.
'-----------------------------------------------------------------
'Изменение рисунка рабочего стола. Используется формат BMP.
'Обновление картинки должно происходить автоматически, а
'путь к картинке должен сбрасываться в реестр в раздел
'HKCU/Control Panel/Desktop, т.е фоновый рисунок сохраняется
'даже после перезагрузки аппарата.
'-----------------------------------------------------------------
'Language: VBScript
'Используется библиотека dynwrap.dll
'ОС Win98 4.10.2222
'ОС WinXP SP2 5.1.2600
'-----------------------------------------------------------------
on Error resume Next
set dllWrap=CreateObject("DynamicWrapper")
if not IsObject(dllWrap) then
msgBox "Невозможно создание объекта DynamicWrapper." & vbCRLF & _
"Установите библиотеку dynwrap.dll" & vbCRLF & _
"и зарегистрируйте её в реестре.", _
vbOKOnly + vbExclamation, "Вызов API"
else
changeWallPaper("C:\myFile.bmp")
end If
WScript.Quit()
'-----------------------------------------------------------------
function changeWallPaper(bmp)
const SPI_SETDESKWALLPAPER=20
const SPIF_UPDATEINIFILE=1
'Регистрация вызова API
dllWrap.Register _
"USER32.DLL", _
"SystemParametersInfoA", _
"i=llsl", _
"f=s", _
"r=l"
'Вызов API
ret=dllWrap.SystemParametersInfoA( _
SPI_SETDESKWALLPAPER, _
0, _
CStr(bmp), _
SPIF_UPDATEINIFILE)
if ret then
msgBox "Заставка изменена.", _
vbOKOnly + vbInformation, _
"Изменение фонового рисунка"
else
msgBox "Не удалось сменить картинку.Произошли ошибки.", _
vbOKOnly + vbExclamation, _
"Изменение фонового рисунка"
end If
End function
Автор скрипта - Poltergeyst.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.