大金空调上海维修:SystemParametersInfoA这个API的参数有哪些呢?

来源:百度文库 编辑:高校问答 时间:2024/04/29 14:34:04
SystemParametersInfoA这个API的参数有哪些呢?
哪里有中文的使用说明呢?
能不能用这个实现把JPG图片设为桌面背景?

呵呵,我以前写个小程序的时候,也找过这个资料,这是天极网上的资料,可以用VB编个更换桌面背景的程序:
SystemParametersInfoA的说明:
【说明】
允许获取和设置数量众多的windows系统参数

【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError

【备注】
在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型

【参数表】
uAction -------- Long,指定要设置的参数。参考uAction常数表

uParam --------- Long,参考uAction常数表
lpvParam ------- Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表

-------------------实例------------------------

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"表示"平铺"。