摘要载入中…    请稍等…















内容载入中…    请稍等…

如何改变桌面的图片?

2009-1-5 21:14:47   来源:互联网  

   

 ·如何使Form的背景图随Form大小改变 ·如何用VB在桌面建立快捷方式 ·图像在图片框中的滚动

如何改变桌面的图片? 
此一问题需调用 SystemParametersInfo API 函数,细节如下:
1. API 的声明:
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
注:如果以上的声明放在「一般模块」底下, 应在 Const 之前加上 Public 保留
字, 并且将 Private 保留字去掉
2. 程序范例:
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP图档名称, 
SPIF_UPDATEINIFILE)
例如:
' 1. 将桌面图片设定成 c:\windows\setup.bmp
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp
", SPIF_UPDATEINIFILE)
' 2. 将桌面图片清掉
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "", 
SPIF_UPDATEINIFILE)
程序如下:
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, BMP图档名称, 
SPIF_UPDATEINIFILE)
例如:
' 1. 将桌面图片设定成 c:\windows\setup.bmp
Call SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "c:\windows\setup.bmp
", SPIF_UPDATEINIFILE)
' 2. 将桌面图片清掉
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



 [1]