怎样实现桌面墙纸的动态更新?谁有原码? 桌面墙纸好象只能使用BMP图片,除非打开WEB我不想用WEB方式更新桌面,也就是说我不想把桌面设置成WEB页面,谁有原码,最好带注释的~` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先做一点说明:SystemParametersInfo, SystemParametersInfoByval VB声明 Declare Function SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)Declare Function SystemParametersInfoByVal& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) 说明 允许获取和设置数量众多的windows系统参数 返回值 Long,非零表示成功,零表示失败。会设置GetLastError 参数表 参数 类型及说明 uAction Long,指定要设置的参数。参考uAction常数表 uParam Long,参考uAction常数表 lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表 fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数: SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件 SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置 注解 在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型 *******************************注意图片文件必须是BitMap类型*******************************示例代码:'更改墙纸的参数信息及调用的API函数Public Const SPI_SETDESKWALLPAPER = 20&Public Const SPIF_SENDWININICHANGE = &H2Public Const SPIF_UPDATEINIFILE = &H1Public Const SS_CENTER = &H1&Public Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As LongPublic Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long '平铺lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "1", 2) '写入相应键值信息lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息 lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "1", "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "0", "Win.ini") '更换结果写入到Win.ini中相应相置 lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息'拉伸lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值 lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "2", 2) '写入相应键值信息 lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "0", "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "2", "Win.ini") '更换结果写入到Win.ini中相应相置 lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息'居中lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息 lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "0", "Win.ini") '更换结果写入到Win.ini中相应相置lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "0", "Win.ini") '更换结果写入到Win.ini中相应相置 lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息 关于窗体获得焦点的机制。。[ VB中插入了Windows MediaPlayer1遇到的问题 如何控制flash的关闭按纽?在线等待!!!!!!! 求修改一段AutoIt的代码,老是报错 VB如何把图片保存成jpg odbc数据源 打印问题,为什么数据不更新??? 有关采样周期内如果计算完成不了,该如何处理 VB2005连接SQL2005数据库问题 vb鼠标点击窗口内某一固定坐标怎么做 请各位帮忙>>关于改变图片格式的问题,在线等待 控制浏览器控件的滚动条,总是没有反映,高手来看看是为什么
Declare Function SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long)
Declare Function SystemParametersInfoByVal& Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long)
说明
允许获取和设置数量众多的windows系统参数
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
uAction Long,指定要设置的参数。参考uAction常数表
uParam Long,参考uAction常数表
lpvParam Any,按引用调用的Integer、Long和数据结构。对于String数据,请用SystemParametersInfoByval函数。具体用法参考uAction常数表
fuWinIni Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方。这个参数规定了在设置系统参数的时候,是否应更新用户设置参数。可以是零(禁止更新),或下述任何一个常数:
SPIF_UPDATEINIFILE 更新win.ini和(或)注册表中的用户配置文件
SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDATEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序。否则没有作用。这调消息告诉应用程序已经改变了用户配置设置
注解
在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型 ******************************
*注意图片文件必须是BitMap类型*
******************************示例代码:
'更改墙纸的参数信息及调用的API函数
Public Const SPI_SETDESKWALLPAPER = 20&
Public Const SPIF_SENDWININICHANGE = &H2
Public Const SPIF_UPDATEINIFILE = &H1
Public Const SS_CENTER = &H1&
Public Declare Function SystemParametersInfo Lib "User32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByRef lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long '平铺
lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值
lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "1", 2) '写入相应键值信息
lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息
lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "1", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "0", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息
'拉伸
lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值
lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息
lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "2", 2) '写入相应键值信息
lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "0", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "2", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息
'居中
lRet = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) '打开相应注册键值
lRet = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息
lRet = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0", 2) '写入相应键值信息
lRet = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "TileWallpaper", "0", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = WritePrivateProfileString("Desktop", "WallpaperStyle", "0", "Win.ini") '更换结果写入到Win.ini中相应相置
lRet = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, ByVal FileName, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) '更新系统参数信息