1

Здравствуйте, я впервые использую этот сайт, поэтому надеюсь, что я не задаю вопрос в неправильном формате.

В любом случае, как видно из заголовка, у меня есть проблема, аналогичная той, на которую недавно был дан ответ, на который был дан ответ, но он не работал на моем компьютере с Windows 8.1, когда я пытался запустить его, чтобы проверить его. Я уверен, что следовал инструкциям, изменив путь к месту, где находится изображение, и мне было интересно, что мне нужно изменить, чтобы заставить его работать, или если код в порядке, и я, вероятно, просто где-то напортачу.

dim shell
Set shell = WScript.CreateObject("WScript.Shell")
wallpaper = "C:\path\to\wallpaper.jpg"
shell.RegWrite "HKCU\Control Panel\Desktop\Wallpaper", wallpaper
shell.Run "%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters", 1, True

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

Любая помощь будет оценена!

1 ответ1

0

Это плохой ответ и не должен использоваться:

Этот скрипт эмулирует щелчок правой кнопкой мыши на картинке и нажимает "Сделать фоновым рисунком рабочего стола". Использование сценария должно быть понятно SetWallPaper "directory to picture", "filename of picture", "name context menu to run" .

'File encoding should be in ANSI
SetWallPaper "C:\icons\", "Potato-icon.png", "Set as desktop &background"

Sub SetWallPaper(WallPaperFolder, WallpaperFile,VerbName)
dim objShell, objFolder, objFolderItem, objVerb, colVerbs
Set objShell = CreateObject("Shell.Application")
set objFolder=objShell.NameSpace(WallPaperFolder)
set objFolderItem=objFolder.ParseName(WallPaperFile)
set colVerbs=objFolderItem.Verbs
for each objVerb in colVerbs
    'msgbox objVerb ,0, "Press CTRL+C for copy text" 'uncomment for debug names in contextmenu
    if objVerb=VerbName then
        'x=msgbox(objVerb ,0, "omg found")
        objVerb.DoIt
        'Without the sleep command the change never takes effect on Win7.
        wscript.sleep(2000)
        wscript.quit
    end if
next
End Sub

Если у вашей Windows другое имя для "установить в качестве фона рабочего стола", когда щелкните правой кнопкой мыши на картинке:

  • Вы должны раскомментировать строку (удалить одинарную кавычку) после каждого objVerb в colVerbs
  • Затем запустите скрипт и найдите (ENTER для следующего сообщения) равную строку «Установить как рабочий стол и фон» для вашего языка, затем нажмите CTRL+C для сохранения сообщения.
  • Откройте блокнот и нажмите CTRL+V, чтобы вставить сообщение. Скопируйте это имя в скрипт.

основываясь на этом

Если вы не ошиблись, то, по крайней мере, работает в Windows 7.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .