界面部图
所需程序的数据
的原代码:
.版本 2
.支持库vclbase
.程序集窗口程序集1
.程序集变量flag, 逻辑型
.程序集变量bmpfile, 文本型
.子程序_按钮_立即更换_被单击
' ' 当"立即更换"按钮被按下时
' Sub CmdNow_Click()
' Dim bmpfile As String
' '如果列表框中没有图片,不做任何操作
' If Listfile.ListCount = 0 Then End
' '否则把选中的图片更换为墙纸
' bmpfile = Listfile.List(Listfile.ListIndex)
' SystemParametersInfo SPI_SETDESKWALLPAPER, 0, bmpfile, SPIF_UPDA TEINIFILE
' End Sub
.如果真(列表框1.取项目数() ≠0)
bmpfile =列表框1.取项目文本(列表框1.现行选中项)
.如果真(文件是否存在(bmpfile) =真)
SystemParametersInfo (#SPI_SETDESKWALLPAPER, 0, bmpfile, #SPIF_UPDA TEINIFILE)
.如果真结束
.如果真结束
.子程序_按钮_添加墙纸_被单击
' ' 当"添加墙纸"按钮被按下时
' Sub CmdAdd_Click()
' '弹出通用对话框(打开文件)
' On Error Resume Next
' ComOpen.CancelError = True
' ComOpen.ShowOpen
' If Err = cdlCancel Then Exit Sub
' '如果选择了墙纸图片则把图片的路径添加到列表框中去
' Listfile.AddItem ComOpen.FileName
' End Sub
.如果真(打开图片文件对话框1.打开())
列表框1.加入项目(打开图片文件对话框1.文件名, )
.如果真结束
.子程序_按钮_退出_被单击
' '当"退出程序"按钮被按下时,退出
' Sub CmdExit_Click()
' Unload Me
' End Sub
结束()
.子程序__启动窗口_创建完毕
' '窗体加载时
' Sub Form_Load()
' 'flag为布尔型变量,标示列表框中是否有文件存在
' flag = False
' '设置自动更换墙纸的间隔时间,单位为毫秒,可以改变
' Timer1.Interval = 5000
' End Sub
flag =假
时钟1.时钟周期=5000
.子程序_时钟1_周期事件
' ' 当经历一定间隔时间,定时器TIMER被唤醒,执行指定任务
' Sub Timer1_Timer()
' '如果列表框中没有图片,不进行任何操作
' If Listfile.ListCount = 0 Then
' Exit Sub
' '否则把标示flag置为True
' Else: flag = True
' End If
' 'bmpfile为字符串变量,存储图片路径
' Dim bmpfile As String
' '如果flag为真
' If flag Then
' '从列表框中读取一个文件路径并赋值给bmpfile
' bmpfile = Listfile.List(Listfile.ListIndex)
' '把墙纸更换为bmpfile所指图片,并修改INI文件
' SystemParametersInfo SPI_SETDESKWALLPAPER, 0, bmpfile, SPIF_UPDA TEINIFILE
' '如果已经是列表框中最后一张图片,把ListIndex设为0即第一张图片
' If Listfile.ListIndex = Listfile.ListCount - 1 Then
' Listfile.ListIndex = 0
' '否则ListIndex加一,指向下一张图片
' Else
' Listfile.ListIndex = Listfile.ListIndex + 1
' End If
' End If
' End Sub
.如果真(列表框1.取项目数() ≠0)
flag =真
bmpfile =列表框1.取项目文本(列表框1.现行选中项)
.如果真(文件是否存在(bmpfile) =真)
SystemParametersInfo (#SPI_SETDESKWALLPAPER, 0, bmpfile,
#SPIF_UPDA TEINIFILE)
.如果(列表框1.现行选中项=列表框1.取项目数() -1) 列表框1.现行选中项=0
.否则
列表框1.现行选中项=列表框1.现行选中项+1 .如果结束
.如果真结束
.如果真结束
源码图
源码
.版本 2
.常量SPI_SETDESKWALLPAPER, "20", , 设置墙纸
.常量SPIF_UPDA TEINIFILE, "1", , 更新windows ini 文件
.常量SPIF_SENDWININICHANGE, "2", , 更新windows ini 文件
源码图
源码
.版本 2
.DLL命令SystemParametersInfo, 整数型, "user32", "SystemParametersInfoA", , 允许获取和设置数量众多的windows系统参数返回值Long,非零表示成功,零表示失败?会设置GetLastError 在调用这个函数之前,特别要注意将lpvParam参数定义成正确的数据类型.参数uAction, 整数型, , Long,指定要设置的参数?参考uAction常数表
.参数uParam, 整数型, , Long,参考uAction常数表
.参数lpvParam, 文本型, , Any,按引用调用的Integer?Long和数据结构?对于String数据,请用SystemParametersInfoByval函数?具体用法参考uAction常数表
.参数fuWinIni, 整数型, , Long,取决于不同的参数及操作系统,随同这个函数设置的用户配置参数保存在win.ini或注册表里,或同时保存在这两个地方?这个参数规定了在设置系统参数的时候,是否应更新用户设置参数?可以是零(禁止更新),或下述任何一个常数: SPIF_UPDA TEINIFILE 更新win.ini和(或)注册表中的用户配置文件SPIF_SENDWININICHANGE 倘若也设置了SPIF_UPDA TEINIFILE,将一条WM_WININICHANGE消息发给所有应用程序?否则没有作用?这调消息告诉应用程序已经改变了用户配置设置
源码图
备注请参考源码