您的位置:寻梦网首页编程乐园VB 编程API 专 区>API实例解析·自动更换墙纸的小程序
VB 编程乐园

API实例解析

API实例解析·自动更换墙纸的小程序

  应用SystemParametersInfo函数可以获取和设置数量众多的windows系统参数。这个小程序就是运用了SystemParametersInfo函数来设置桌面的墙纸,而且程序可以让我们选择多幅墙纸图片,程序会以一定的时间间隔自动改变墙纸。

  为了学习方便,提供的源码已经作了详细的中文注释,看看源码框中的代码:


  我们先来看看SystemParametersInfo函数的定义和参数:

  使用API函数之前必须先在程序中声明如下:
  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

  其中各参数的意义如下表:

参数: 意义
uAction Long,指定要设置的参数。参考uAction常数表
uParam Long,参考uAction常数表
lpvParam Any,按引用调用的Integer、Long和数据结构。
fuWinIni 这个参数规定了在设置系统参数的时候,是否应更新用户设置参数

  下面是部分uAction参数,和使用它们的方法:

参数
意义和使用方法
6
设置视窗的大小,SystemParametersInfo(6, 放大缩小值, P, 0),lpvParam为long型
17
开关屏保程序,SystemParametersInfo(17, False, P, 1),uParam为布尔型
13,24
改变桌面图标水平和垂直间距,uParam为间距值(像素),lpvParam为long型
15
设置屏保等待时间,SystemParametersInfo(15, 秒数, P, 1),lpvParam为long型
20
设置桌面背景墙纸,SystemParametersInfo(20, True, 图片路径, 1)
93
开关鼠标轨迹,SystemParametersInfo(93, 数值, P, 1),uParam为False则关闭
97
开关Ctrl+Alt+Del窗口,SystemParametersInfo(97, False, A, 0),uParam为布尔型

  本例中我们选择图片并取得图片的完整路径,然后通过调用API函数,将这幅图设为墙纸,使用的语法为:SystemParametersInfo SPI_SETDESKWALLPAPER, 0, bmpfile, 1

  其中SystemParametersInfo表示要设置桌面墙纸,bmpfile是要设置的图片的路径。

  例中的定时自动更换是通过Timer控件实现的,我们可以调节Timer控件的Interval属性来改变间隔时间的长短。这样就能看到不断变化的桌面了。