我喜欢某些 Windows 主题在各种图像之间轮换的方式,但我也喜欢使用背景信息将各种机器信息写入桌面墙纸图像。
我创建了一个自定义的 BGI 文件并将其指向current.jpg
一个文件夹。然后我编写了一个 powershell 脚本,将该文件夹中的随机图像复制到current.jpg
,然后执行 BgInfo 命令行选项来更新壁纸:
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
这很好用。但是,当我设置计划任务每三十分钟执行一次此脚本时,屏幕上会短暂地闪烁一个 powershell 窗口。我见过使用 VBS 文件执行命令的解决方案,所以我尝试了:
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
我不再看到简短的控制台窗口,但它仍会以奇怪的方式激活前台应用程序。例如,如果我使用 Chrome,它会将当前活动的 Chrome 窗口切换到另一个窗口。
我做错了什么吗?如何安排任务而不影响前台应用程序?
编辑:由于它是 BgInfo 特有的,你知道 BgInfo 的源代码是否在任何地方可用吗?这个错误自 2007 年就存在了,甚至自 2013 年以来就没有更新过。
答案1
这看起来像是 BGInfo 的问题(参见这里和这里),而且似乎没有任何选项能够改变这种行为。
显然有可能获取与 BGInfo 相同的信息,在图片上写文字, 和刷新墙纸通过 powershell,因此如果您愿意,您可以推出自己的解决方案。不能保证这些步骤之一不会最终引起关注,但可能值得一试。