Alterando o plano de fundo da área de trabalho dependendo da hora do dia via script do Windows 8.1

Alterando o plano de fundo da área de trabalho dependendo da hora do dia via script do Windows 8.1

Olá, é a primeira vez que uso este site, então espero não estar fazendo a pergunta no formato errado.

De qualquer forma, como o título diz, estou com um problema semelhantepara um tópico que foi respondido há algum tempoque tinha a resposta, mas não funcionou no meu computador que executa o Windows 8.1 quando tentei executá-lo para testá-lo. Tenho certeza de que segui as instruções alterando o caminho para onde a imagem está localizada e fiquei me perguntando o que precisaria mudar para que funcionasse ou se o código está perfeitamente correto e provavelmente eu errei em algum lugar.

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

Eu também tentei ocódigo originalmas acabo recebendo um erro dizendo que o sistema não consegue encontrar o arquivo especificado na última linha do código.

Qualquer ajuda será apreciada!

Responder1

Esta é uma resposta ruim e não deve ser usada:

Este script emula o clique com o botão direito na imagem e pressione "Definir como plano de fundo da área de trabalho". O uso do script deve ser claro 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

Se o seu Windows tiver um nome diferente para "definir como plano de fundo da área de trabalho" ao clicar com o botão direito na imagem:

  • Você deve descomentar a linha (remover aspas simples) depoispara cada objVerb em colVerbs
  • Em seguida, execute o script e encontre (ENTER para a próxima mensagem) a string igual "Definir como área de trabalho e plano de fundo" para o seu idioma e pressione CTRL + C para salvar a mensagem.
  • Abra o bloco de notas e pressione CTRL+V para que a mensagem seja colada. Copie este nome para o script.

baseado emesse

Se você não cometer erros, funcionará pelo menos no Windows 7.

informação relacionada