ita*_*omo 6 regedit windows-xp desktop-customization
我想要的是每隔几个小时以编程方式更改桌面壁纸。我正在使用批处理文件 (.bat) 并且不想使用其他语言或程序,只想使用 Windows XP 预装的东西。我已经制作了我的脚本来修改注册表中的值
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /d "C:\Pictures\picture1.jpg"
Run Code Online (Sandbox Code Playgroud)
问题是即使使用此命令,脚本也不会实时生效:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True
Run Code Online (Sandbox Code Playgroud)
我需要先重启才能生效。
如果我要使用显示属性,它会立即显示。我注意到的是,如果它是 .bmp 文件而不是 .jpg 图像,更改将实时生效。
第二种选择是将 JPG 转换为 24 位 BMP 文件(看起来完全相同,但文件大小会增加三倍),但我希望有更好的方法。
我已经用谷歌搜索了一些东西,但没有用。我希望您(乐于助人的读者)可以发布任何 .bat 甚至 .vbs 脚本,以使用 JPG 图片立即更改桌面壁纸。我希望在不安装其他应用程序或脚本的情况下有答案。
如果我要使用显示属性,它会立即显示。我注意到,如果它是 .bmp 文件而不是 .jpg 图像,则更改将实时生效。
这是因为 Windows 不支持除位图以外的任何壁纸(是的,即使在 Windows 7 中也是如此)。
当您将 jpeg、gif、png 等设置为壁纸时,Windows 首先将其转换为位图,将其保存到临时文件,然后将壁纸设置为该文件(在 Windows 7 中,文件名更能说明这一点) :
In Windows XP: %appdata%\Microsoft\Internet Explorer\Wallpaper1.bmp
In Windows 7: %appdata%\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper.jpg
Run Code Online (Sandbox Code Playgroud)
所以恐怕您确实需要先将其转换为位图。