Зміна фону Windows 7 для робочого столу


1

Я шукав в Інтернеті пакетне рішення, щоб змінити фон робочого столу 64 біт Windows 7 Ultimate, і після декількох спроб я міг змусити його працювати лише один раз, але ніколи більше ...

Я використовую це:

SET "str=C:\Users\Jorge\Dropbox\Photos\Wallpapers\1379362257639.jpg"
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /f /t REG_SZ /d %str%
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

Після запуску цього вікна "Costumize" з'явиться новий фон, але Desktop не оновиться ... чому? Крім того, я підтвердив, що ключ реєстру також змінюється на шляху зображення, і я спробував розширення bmp.

Дивна частина, якщо я запускаю її кілька разів, вона, нарешті, випадковим чином змінюється (на правильне зображення, але випадково ...), я не знаю, чому?

Редагувати: Здається, що після 3-го / четвертого разу цей самий код остаточно змінюється ..?

Відповіді:


1

Повинен

SET "str=C:\Users...

Бути

SET str="C:\Users...

?


Ну, це також працює, я вважаю, що це те саме, проблема полягає в тому, що це не завжди змінюється під час першого запуску пакетного файлу, я хочу знати, чому ..
SomeNickName


Ну, я далі шукав, і, мабуть, я виявив, що це не працює належним чином у Windows 7 + ... я не знаю, як використовувати цей API з пакетного файлу, приклад, який було надано там, має той самий вплив на зміну тут ..
SomeNickName

Як я бачу, проблема полягає лише в оновленні шпалер, і, як видається, RUNDLL32.EXE USER32.DLL, UpdatePerUserSystemParameters не працює належним чином, завжди потрібно кілька разів (приблизно 4), щоб успішно оновити робочий стіл ... Як я можу ' зараз не знайдете нічого, що вирішить проблему, мабуть, це піднімається з 09
SomeNickName

0

Я виявив, що у мене не було шансів виконати це ідеально, використовуючи лише пакетний файл ... наскільки йде моє пакетне знання, тому я використовував vb.net, щоб виконати SystemParametersInfo функцію, як це:

Const SPI_SETDESKWALLPAPER As UInteger = &H14
Const SPIF_SENDCHANGE As UInteger = &H2

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "IMAGE_PATH", SPIF_SENDCHANGE)

Примітка. У цьому випадку зображення не повинно бути bmp, я перевірений jpg, і воно спрацювало чудово. У моєму випадку немає проблеми використовувати vb.net для цього, сподіваюся, я комусь допоміг;).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.