自动更换桌面墙纸的方法


这个题目也属于老生常谈了,更换墙纸的方法五花八门,用得最多的可能要算是调用API函数SystemParametersInfo了。但笔者今天要讲的,是一个全新的方法,对于操作系统xp和win7都适用(win7以上系统未验证),仅仅只要更改三个注册表数据的值就行了,这也是笔者最新的研究成果。
在更改注册表值之前,建议你建立一个存放墙纸图片文件的专用文件夹。对于xp操作系统来说,图片类型为bmp位图(xp的墙纸图片只能是bmp,如果你以前用jpg图片也成功了,那是因为系统内部自动把图片转为了位图),对于win7操作系统来说,jpg和bmp都可,当然用jpg要节省空间一些。
要更改的注册表项是:


[HKEY_CURRENT_USER\Control Panel\Desktop]
"ConvertedWallpaper"
"OriginalWallpaper"
"Wallpaper"


这三个数据都是字符型的,你把它们的值都改为指向专用文件夹中同一个图片文件即可。示例代码:


Dim ws
Dim Register As String
Dim Wallpaper As String
Set ws = CreateObject("wscript.shell")
Register = "HKCU\Control Panel\Desktop\"
Wallpaper = "F:\电脑墙纸\001.jpg" 'win7系统为jpg,xp系统为bmp
ws.regwrite Register & "ConvertedWallpaper", Wallpaper
ws.regwrite Register & "OriginalWallpaper", Wallpaper
ws.regwrite Register & "Wallpaper", Wallpaper
Set ws = Nothing