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.