上一篇 | 下一篇

如何改变桌面的图片?

发布: 2008-6-26 09:40 | 作者: admin | 来源: | 查看: 0次

原始来源:王国荣

Const SPI_SETDESKWALLPAPER = 20

Const SPIF_UPDATEINIFILE = &H1

Private Declare Function SystemParametersInfo Lib "user32" Alias _

"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, _

ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP图档名称, _

SPIF_UPDATEINIFILE)

例如: 将桌面图片设定成 c:\windows\setup.bmp

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _

SPIF_UPDATEINIFILE)

将桌面图片清掉

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", SPIF_UPDATEINIFILE)

但以上程式设定图片之後, 必须等到下次 Windows 重新启动时才生效, 如果希望设定

之後立刻生效, 则程式须修改如下:

Const SPIF_SENDWININICHANGE = &H2

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _

SPIF_UPDATEINIFILE + SPIF_SENDWININICHANGE )

此外希望只有本次使用 Windows 时改变桌面图片(下次开机时还原原状), 则

程式如下:

Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp", _

SPIF_SENDWININICHANGE ) ' 去掉 SPIF_UPDATEINIFILE

上述方法并不能设定图片的显示方式(包含「置於中央」、「并排」、及「展开」)

怎样让在改变桌面图片时, 也设定显示方式呢?

方法就是在呼叫 SystemParametersInfo 之前, 利用改变登录资料库的以下设定值:

HKEY_CURRENT_USER\Control Panel\Desktop\TileWallpaper

HKEY_CURRENT_USER\Control Panel\Desktop\WallpaperStyle

这两个设定值的意义如下:

展开

TileWallpaper的设定值

WallpaperStyle的设定值

显示方式

"0"

"0"

置於中央

"0"

"2"

并排显示

"1"

-

展开

注:所谓「展开」是当图片与萤幕不等大时, 将图片调整成语萤幕等大小, 这是 Windows 98 新增的

功能, 但如果您的机器安装有 IE 4.x, 则 Windows 95 也具备相同的功能。

字号: | 推荐给好友

评分:0

我来说两句