打印本文 打印本文 关闭窗口 关闭窗口
用VB更换桌面墙纸DIY
作者:武汉SEO闵涛  文章来源:敏韬网  点击数840  更新时间:2009/4/23 14:59:09  文章录入:mintao  责任编辑:mintao
  在客户运行您的应用程序的时候自动更换墙纸,显然是广告宣传的一个好机会。但无论是MSDN还是网络上的免费资源代码,更换墙纸几乎都是同一个API函数SystemParametersInfo和同一段代码,国外站点提供的免费代码也是如此。从VB4.0开始就这样。这段代码是:

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 SPI_SETDESKWALLPAPER = 20
Const SPIF_SENDWININICHANGE = &H2
Const SPIF_UPDATEINIFILE = &H1

Private Sub Form_Load()
  ChangeWP = SystemParametersInfo(SPI_SETDESKWALLPAPER,
         0, "Path+BmpFile", 0)
End Sub
  使用这个例程确实能够切换墙纸,但存在以下问题:

  1、用鼠标右键点击桌面,会看到【背景】→【墙纸】里面的文件名是空的。

  2、重新启动后桌面墙纸消失。

  3、没告诉您怎么切换"居中"或"平铺"。

  怎么解决这些问题呢?

  1、Windows的墙纸必须以BMP格式的文件存放在Windows目录下面,如果您的图片不在该目录或不是BMP文件,那么就会出现第一个问题。因此必须把您的图片转换成BMP文件并复制到Windows目录下面。

  2、要使重新启动后需要在注册表里面修改相应的键值,具体位置是 HKEY_CURRENT_USER\Control Panel\desktop中的Wallpaper键,让它的键值等于您的全路径文件名。

  3、在更换墙纸以前首先设置是否"居中",需要修改注册表中HKEY_CURRENT_USER\Control Panel\desktop中的TileWallpaper键,键值"0"表示"居中","1"表示"平铺"。

打印本文 打印本文 关闭窗口 关闭窗口