我一直在网上寻找批量修改Windows 7 Ultimate 64位桌面背景的方法,尝试了几次之后,只成功了一次,之后就再也改不了了...
我正在使用这个:
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
运行该程序后,在“定制”窗口中,新背景出现在那里,但桌面不会刷新...为什么?另外,我确认注册表项也更改为图片的路径,并且我尝试了 bmp 扩展名。
奇怪的是,如果我多次运行它,它最终会随机改变(变为正确的图像但随机......)我不知道为什么?
编辑:似乎在第三次/第四次运行相同的代码后,它终于发生了变化..?
答案1
应该
SET "str=C:\Users...
是
SET str="C:\Users...
?
答案2
我发现仅使用批处理文件根本无法完美地完成此操作...就我的批处理知识而言,因此,我使用 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 完成此操作没有问题,希望我可以帮助到某人 ;)。