没看大懂,是要画一张壁纸还是要换一张壁纸??
我知道换壁纸用systemparameterinfo可以实现

解决方案 »

  1.   

    此一问题需调用 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 = &H2Call 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
     
    如何在DOS程序结束执行时,自动将其关闭? 在 VB 程序中启动 DOS 程序(或指令)的方法是:Shell "DOS可执行文件名", vbNormalFocus例如:Shell "Xcopy c:\temp\*.* d:\temp\*.*", vbNormalFocus但是当以上的 Xcopy 程序结束执行时, 却会残留着 DOS 窗口没有被关闭,如果想要让 DOS 程序结束执行时, DOS 窗口自动被关闭, 则应该使用以下方法来启动 DOS 程序:Shell "Command.com /C DOS可执行文件名", vbNormalFocus例如:Shell "Command.com /C Xcopy c:\temp\*.* d:\temp\*.*", vbNormalFocus
     
      

  2.   

    此一问题需调用 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 = &H2Call 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
     
    如何在DOS程序结束执行时,自动将其关闭? 在 VB 程序中启动 DOS 程序(或指令)的方法是:Shell "DOS可执行文件名", vbNormalFocus例如:Shell "Xcopy c:\temp\*.* d:\temp\*.*", vbNormalFocus但是当以上的 Xcopy 程序结束执行时, 却会残留着 DOS 窗口没有被关闭,如果想要让 DOS 程序结束执行时, DOS 窗口自动被关闭, 则应该使用以下方法来启动 DOS 程序:Shell "Command.com /C DOS可执行文件名", vbNormalFocus例如:Shell "Command.com /C Xcopy c:\temp\*.* d:\temp\*.*", vbNormalFocus