此一问题需调用 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