Запустить запланированное задание, которое может обновить фоновые обои рабочего стола, не вызывая вспышку на переднем плане?

1340
travis

Мне нравится, как определенные темы Windows вращаются по различным изображениям, но мне также нравится использовать BgInfo для записи различной информации о машине в изображение обоев рабочего стола.

Я создал настроенный файл 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

1 ответ на вопрос

2
Beright

This looks like an issue with BGInfo (see here and here), and none of the options seem to change this behavior.

It is apparently possible to get the same info as BGInfo, write text on an image, and refresh the wallpaper via powershell, so you could roll your own solution if you are so inclined. No guarantees that one of these steps won't end up grabbing focus as well, but it may be worth a try.

Ох, интересно. Я начну изучать это, спасибо. travis 8 лет назад 0
Вот решение, которое я в итоге написал, похоже, оно работает достаточно хорошо: https://gist.github.com/dieseltravis/3066def0ddaf7a8a0b6d travis 8 лет назад 0