2013-04-26 3 views
0

Краткое резюме вопроса: В Windows 7, используя Powershell или немного C#, как мы можем определить, будет ли пользовательская тема оставлять одиночное изображение или сделать слайд-шоу в фоновом режиме ?Powershell - получить статус Win 7 слайд-шоу

(Связанные вопросы, но не совсем то же самое, и не ответил:

Связанный ресурс, но не помогло:

)

вопрос довольно много, что это звучит как, и я не знаю, почему она такая большая проблема.

В Win8 я могу использовать технику на основе сообщения Энди (Powershell script from shortcut to change desktop), чтобы получить исходное изображение. Оттуда и из того, что я могу сказать, слайд-шоу всегда заканчивается в TranscodedWallpaper.jpg, и как только вы переходите к одному изображению, он переключается на имя изображения. Так немного окольным, но я могу сказать, если слайд-шоу на

В Win7 я могу проверить WallpaperSource

Get-ItemProperty 'HKCU:\Software\Microsoft\Internet Explorer\Desktop\General' WallpaperSource 

но это только дает мне текущее изображение, если есть слайд-шоу, и если мы используя «Custom.theme», то

Get-ItemProperty -path 'HKCU:Control Panel\Desktop' -name 'Wallpaper' 

возвращает TranscodedWallpaper.jpg каждый раз, даже если там не осталось там только один образ и нет временной интервал. (Независимо от того, использую ли я вышеупомянутую команду или сценарий Энди)

Я попытался запустить Process Monitor, чтобы выяснить, что делают окна, и он немного играет в «C: \ Windows \ Globalization \ MCT \ MCT-US \ Обои \ desktop.ini ', но он, похоже, не оставляет никаких меток, которые я могу использовать. Это помогло мне найти

Get-ItemProperty -path 'HKCU:Control Panel\Personalization\Desktop Slideshow' 

который имеет Перемешать и поле Интервал, но ни изменения, когда мы находимся в пользовательской теме - одно изображение против пользовательской темы - слайд-шоу.

Уверен, что у меня отсутствует очень очевидное (новое для игры на этой стороне Windows и Powershell) .. любые мысли?

ответ

2

Прошло некоторое время, но я понял (или понял решение). Если кто-то проходит через это, Win 7 имеет INI-файл:

C:\Users\[...]\AppData\Roaming\Microsoft\Windows\Themes\slideshow.ini 

Когда есть только одна картина в «слайд-шоу» этот файл становится пустым, поэтому использование .WallpaperSource правильный фоновое изображение. Когда в слайд-шоу есть несколько изображений, этот файл имеет контент (информация о переходе фона), даже если.WallpaperSource кажется правильным изображением, оно, вероятно, со временем изменится на основе интервала.

Короче говоря, от того, что я могу видеть (и пока я не натыкаться ситуации, которая нарушает это правило, и я возвращаюсь к чертежной доске), чтобы увидеть, если у вас есть слайд-шоу вам:

$doesFileExist = Test-Path $PATH_TO_THE_INI_FILE 
if ($doesFileExist){ 
    $iniContent = Get_Content $PATH_TO_THE_INI_FILE 
    if ($iniContent){ 
     # This was a slideshow 
    } 
    else { 
     # This does not seem to be a slideshow 
    } 
} 

(Это, конечно, только для сборки в функциях Windows 7, не знаю, как это будет реагировать на все пользовательские коды и приложения там). И решение Win 8 находится в начальном вопросе

 Смежные вопросы

  • Нет связанных вопросов^_^