Prueba con este codigo para cambiar la imagen del desktop, lo que debes hacer es poner la imagen en un picture:
Private Declare Function SystemParametersInfo Lib "user32" Alias _
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam _
As Long, ByVal lpvParam As String, ByVal fuWinIni As Long) As Long
Const SPI_SETDESKWALLPAPER = 20
Const SPIF_UPDATEINIFILE = &H1
Const SPIF_SENDWININICHANGE = &H2
Private Sub Command1_Click()
Call SavePicture(Picture1, "c:\" & "Wallpaper.bmp")
kfile = "c:\" & "Wallpaper.bmp"
x = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, kfile, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE)
End Sub
Con este deberia de cambiar el wallpaper, a mi me funciono... Pruebalo y me dices que tal...