web-dev-qa-db-ja.com

前景のフラッシュを発生させずにデスクトップの背景の壁紙を更新できるスケジュールされたタスクを実行しますか?

特定のWindowsテーマがさまざまな画像を回転する方法が好きですが、 BgInfo を使用してさまざまなマシン情報をデスクトップの壁紙画像に書き出すことも好きです。

カスタマイズしたBGIファイルを作成し、フォルダー内のcurrent.jpgをポイントしました。次に、そのフォルダー内のランダムな画像をcurrent.jpgにコピーし、BgInfoコマンドラインオプションを実行して壁紙を更新するPowerShellスクリプトを作成しました。

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

これはうまくいきます。ただし、このスクリプトを30分ごとに実行するようにスケジュールされたタスクを設定すると、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
travis

これはBGInfoの問題のように見え( ここ および ここ を参照)、どのオプションもこの動作を変更しないようです。

BGInfoと同じ情報を取得する画像にテキストを書き込む 、および 壁紙を更新する をPowerShell経由で実行できるため、ロールすることができます。あなたがそんなに傾いているならあなた自身の解決策。これらのステップのいずれかがフォーカスを取得することにならないという保証はありませんが、試してみる価値があるかもしれません。

2
Beright