vb实现桌面墙纸自动更换

 看着大儿子的照片,突然想要将所有儿子的照片都作为墙纸。而且打算每次开机都换一张照片作为桌面。

所以就查了查资料,做了一个桌面的自动更新程序,只要将其快捷方式放入启动组内就可以了。

下载地址为:http://download.csdn.net/source/544487

下面说说代码吧:

SetKeyValue和SetValueEx是在网上抄来的对注册表进行操作的函数,最后一个setDesktop的函数就是将你的图片地址imgstr直接设置为墙纸的函数了。

Private Sub SetKeyValue(sKeyName As String, sValueName As String, vValueSetting As Variant, lValueType As Long, lPredefinedKey As Long)
  lRetVal = RegOpenKeyEx(lPredefinedKey, sKeyName, 0, KEY_ALL_ACCESS, hKey)
  lRetVal = SetValueEx(hKey, sValueName, lValueType, vValueSetting)
  RegCloseKey (hKey)
End Sub

Private Function SetValueEx(ByVal hKey As Long, sValueName As String, lType As Long, vValue As Variant) As Long
  Dim lValue As Long
  Dim sValue As String
  Select Case lType
    Case REG_SZ
          sValue = vValue & Chr$(0)
          SetValueEx = RegSetValueExString(hKey, sValueName, 0&, lType, sValue, Len(sValue))
    Case REG_DWORD, REG_BINARY
          lValue = vValue
          SetValueEx = RegSetValueExLong(hKey, sValueName, 0&, lType, lValue, 4)
  End Select
End Function


Private Sub setDeskImage(index As Long)
  '写入注册表
  If index = 1 Then
  '设定居中
  SetKeyValue "Control Panel/desktop", "TileWallpaper", "0", REG_SZ, HKEY_CURRENT_USER
  SetKeyValue "Control Panel/desktop", "WallpaperStyle", "0", REG_SZ, HKEY_CURRENT_USER
  '设定平铺
   ElseIf index = 2 Then
   SetKeyValue "Control Panel/desktop", "TileWallpaper", "0", REG_SZ, HKEY_CURRENT_USER
   SetKeyValue "Control Panel/desktop", "WallpaperStyle", "2", REG_SZ, HKEY_CURRENT_USER
  ElseIf index = 3 Then
  '设定拉伸
   SetKeyValue "Control Panel/desktop", "TileWallpaper", "1", REG_SZ, HKEY_CURRENT_USER
   SetKeyValue "Control Panel/desktop", "WallpaperStyle", "0", REG_SZ, HKEY_CURRENT_USER
  End If
  '更换墙纸
  ChangeWP = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, imgstr , SPIF_UPDATEINIFILE )
  '在注册表中记录图片位置
  SetKeyValue "Control Panel/desktop", "Wallpaper", imgstr , REG_SZ, HKEY_CURRENT_USER

End Sub

上面的方法完全可以立即进行墙纸的变换,但是不知道为什么对于居中/对称/平铺的设置并不能立即见效。

于是在我提供的下载链接中,我是用了IActiveDesktop和相应的tlb才实现立即变换桌面显示的模式(居中/对称/平铺)。

但我想很多人都没有这个需求,所以就不再介绍了,上面的应该可以满足大多数人的要求了。:)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VB(Visual Basic)是一种用于开发Windows应用程序的编程语言,也可以用于创建软件自动升级程序。下面是一个使用VB实现软件自动升级程序的示例。 首先,需要创建一个VB项目并添加所需的控件和模块。在VB的用户界面中,可以使用文本框、按钮和标签等控件来实现用户交互和显示信息。 然后,在VB代码窗口中,可以使用文件操作函数来检查软件的当前版本和服务器上的最新版本。例如,可以使用File.Exists函数来检查服务器上是否存在最新版本的软件文件。 接下来,可以通过编写代码来比较当前软件版本和服务器上的最新版本,并决定是否需要进行软件升级。如果发现有新版本可用,可以弹出一个对话框来通知用户,询问他们是否要升级软件。 如果用户同意升级软件,可以使用类似WebClient.DownloadFile的函数来下载最新版本的软件文件。然后,可以使用文件操作函数来替换旧版本的软件文件。 在升级过程中,可以显示进度条或进度信息,以便用户可以清楚地看到升级进度。可以使用ProgressBar控件来显示进度条,并通过更新其Value属性来更新进度。 最后,在升级完成后,可以显示一个提示消息,告知用户升级已经成功完成,并可以选择是否重启软件以完成升级。可以使用MessageBox.Show函数来显示提示消息,并根据用户的选择执行相应的操作。 以上是使用VB实现软件自动升级程序的简单示例。通过编写VB代码来检查、下载、替换软件文件,并显示升级进度和提示消息,可以实现一个功能完善的软件自动升级程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值