Alterar papel de parede, dependendo da hora do dia, via script ou arquivo em lote?


9

Quero ter 2 papéis de parede diferentes que mudam de acordo com a hora do dia (6 e 22 horas, respectivamente) e só quero exibir a noite após 22 horas e o dia apenas após 6 horas e até 22 horas.

Não encontrei um programa que pudesse fazer isso depois de um modo de espera, por isso pensei que deveria ser fácil perceber com o agendador de tarefas executando um script. Agora, a questão não é apenas como realizar esse script, mas também se o script deve incluir a verificação do tempo ou o agendador de tarefas. Não tenho certeza do que funcionaria melhor se o PC estivesse em modo de espera.

Eu já tentei alguns scripts com perguntas semelhantes e esperava poder modificá-los de acordo com minhas necessidades, mas eles não funcionaram.

Alguém pode me ajudar? TIA.

Respostas:


5

Isso é realmente muito simples:

  1. Clique com o botão direito do mouse no plano de fundo da área de trabalho
  2. Selecione "Personalizar"
  3. Clique em "Plano de fundo da área de trabalho"
  4. Arraste e solte imagens na caixa ou selecione "Procurar" e encontre a (s) imagem (s)
  5. Verifique as duas imagens, verifique se a manhã é a primeira
  6. Aguarde até 00:00 e selecione "Alterar imagem a cada 12 horas"
  7. Aproveitar!

Este é um truque tão elegante!
aalaap

5

Use o agendador de tarefas e crie um VBscript para alterar o papel de parede. Crie um script para cada papel de parede que você pretende usar.

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

Salve o arquivo como algo.vbs e adicione-o ao agendador de tarefas e pronto! Você fez tudo funcionar.

Também foi mencionado que não mudaria o papel de parede se o computador fosse desligado no momento em que deveria mudar. Isso está errado, pois a tarefa pode ser definida para ser executada na primeira inicialização após o tempo selecionado, portanto será definida assim que você iniciar o computador, mesmo que estivesse desligado durante o tempo em que deveria ter sido alterado. Para configurar isso, vá para as propriedades de tarefas específicas e na guia Configurações. Marque a segunda caixa na janela e pronto.

Esse script funciona perfeitamente para mim no Windows 8. Observe como eu modifiquei um pouco o script original para torná-lo mais curto.

Fonte: http://www.ehow.com/facts_7586006_script-change-desktop-background.html


Esta é a verdadeira resposta.
Joe Coder

1

Toda vez que vejo alguém perguntando sobre fazer algo em um horário específico ou periodicamente no Windows, apóia a ideia de usar o Agendador de Tarefas do Windows.

insira a descrição da imagem aqui

Para fazer o que você pretende fazer, crie duas tarefas, cada uma delas agendada para executar um script ou comando para mudar de um papel de parede para outro no horário específico em que você desejar. Esses comandos devem poder alterar automaticamente o papel de parede do Windows, e a maneira mais fácil de fazer isso é usando o Registro do Windows. Aqui você pode encontrar HOWTO: Alterar o papel de parede da área de trabalho com a seguinte chave do registro:

HKEY_CURRENT_USER \ Painel de controle \ Desktop \ WallPaper

Portanto, crie suas tarefas definindo os valores para o seu registro e você poderá alterá-lo automaticamente sem precisar instalar aplicativos de terceiros.


Obrigado, mas isso requer reinicialização, mas precisa ser aplicado instantaneamente. Eu também tentei esse programa já. Ele não pode fazer o que eu quero, porque não muda o papel de parede de noite para dia, se o PC perder um tempo para trocar porque estava em modo de espera, por exemplo.
Patrick

Isso não ajuda em nada - portanto, o que escrevi no meu post, requer reinicialização ou logout e login para fazer as alterações, portanto, não é automático.
PnP

Você está realmente muito próximo, basta atualizar os parâmetros do sistema posteriormente. Dê uma olhada na minha resposta.
Steen Schütt 17/04

1

Eu pretendia fazer isso há um bom tempo, depois voltei ao tópico, aprimorando a configuração da maneira que eu gosto, após uma reinstalação do sistema operacional.

Depois de analisar o projeto, encontrei o arquivo de configuração da apresentação de slides; (% APPDATA% / Microsoft / Windows / Themes / slideshow.ini). Este arquivo contém uma linha "ImagesRootPIDL =" que, depois de pesquisar um pouco, indica que a grande sequência de letras, números e símbolos a seguir está de fato, uma "PCIDLIST_ABSOLUTE" codificada por uu, aparentemente, essa é uma maneira de localizar um diretório nas janelas em um nível mais baixo do que usar um caminho.

Seja como for, para encurtar a história, parece que esse arquivo muda quando uma imagem é adicionada ao diretório da apresentação de slides ou quando a apresentação de slides é alterada para um novo diretório. Portanto, minha solução foi gravar um arquivo em lotes duas vezes por dia, dependendo da variável% TIME%, copiar o arquivo .ini para cada uma das minhas apresentações de slides na minha pasta de configuração e anexá-los dia ou noite e substituir o arquivo .ini no diretório pasta de temas com o arquivo .ini das apresentações de slides apropriadas.

A única desvantagem da minha solução é que agora tenho um arquivo em lotes o tempo todo, embora eu ache que uma tarefa agendada seria uma implementação melhor e resolva esse problema, gosto de criar coisas que realmente interajam com elas mesmas. Até o momento, não foi necessário reiniciar o computador ou o explorer para alternar entre apresentações de slides, ele passa para a próxima apresentação de slides após o término do tempo entre os slides. Ainda não tentei fazê-lo falhar, mas executá-lo por duas semanas parece um período de depuração suficiente para mim.

Sou um pouco novo no sistema operacional Windows, portanto, peço desculpas se isso tiver muitas declarações óbvias ou se é fácil clicar algumas vezes. Eu acho que esse tipo de coisa é a maneira mais rápida de aprender o funcionamento interno do sistema operacional, embora eu ache que eu poderia ter escrito isso em cerca de cinco linhas em um script linux bash, em vez dos quarenta colossos de lotes de linhas ímpares.


0

Infelizmente, não acho que exista algo embutido no Windows que permita fazer isso sem a necessidade de efetivamente efetuar o logout e o logon novamente. Como os papéis de parede podem ser controlados pelo registro, você pode criar um arquivo em lotes para modificar a entrada do registro - mas as alterações no próprio papel de parede não seriam vistas até você sair e entrar novamente. Você pode tentar um aplicativo de terceiros como: http://download.cnet.com/Automatic-Wallpaper-Changer/3000-2336_4- 10560884.html

Espero que isto ajude.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.