Executa uma tarefa agendada que pode atualizar o papel de parede de fundo da área de trabalho sem causar um flash de primeiro plano?

1

Eu gosto de como certos temas do Windows giram através de várias imagens, mas também gosto de usar BgInfo gravar várias informações da máquina na imagem do papel de parede da área de trabalho.

Eu criei um arquivo BGI personalizado e apontei para current.jpg em uma pasta. Em seguida, escrevi um script powershell para copiar uma imagem aleatória nessa pasta para o current.jpg e, em seguida, executar as opções da linha de comando BgInfo para atualizar o papel de parede:

Get-ChildItem -Path $Env:USERPROFILE\Pictures\wallpaper\* -Include *.* -Exclude current.jpg | Get-Random | Foreach-Object { Copy-Item -Path $_ -Destination $Env:USERPROFILE\Pictures\wallpaper\current.jpg }
D:\utils\SysinternalsSuite\Bginfo.exe $Env:USERPROFILE\Documents\custom.bgi /NOLICPROMPT /timer:0

Isso funciona muito bem. No entanto, quando eu configuro uma tarefa agendada para executar este script a cada trinta minutos, uma janela do PowerShell pisca na tela, brevemente. Eu tinha visto soluções que usam um arquivo VBS para executar comandos , então eu tentei isso:

Dim shell,command
command = "powershell.exe -NoLogo -NonInteractive -WindowStyle Hidden -File D:\utils\select-random-wallpaper.ps1"
set shell = CreateObject("WScript.Shell")
shell.Run command,0

Eu não vejo mais uma breve janela do console, mas ela ainda ativará o aplicativo em primeiro plano de maneiras estranhas. Como se eu estivesse usando o Chrome, ele mudaria a janela atual ativa do Chrome para outra diferente.

Estou fazendo algo errado? Como faço para agendar uma tarefa sem que ela afete os aplicativos em primeiro plano?

Edit: Relacionado a ser BgInfo-specific, alguma ideia se a fonte do BgInfo estiver disponível em algum lugar? O bug existe desde 2007 e nem foi atualizado desde 2013.

    
por travis 10.09.2015 / 18:24

1 resposta

2

Isso parece um problema com o BGInfo (consulte aqui e here ), e nenhum dos as opções parecem mudar esse comportamento.

É aparentemente possível obter as mesmas informações que o BGInfo , escreva texto em uma imagem e atualize o papel de parede via powershell, para que você possa rolar sua própria solução se você for inclinado. Não há garantias de que uma dessas etapas não acabe pegando foco também, mas pode valer a pena tentar.

    
por 11.09.2015 / 00:08