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.