Programación VB6 para cambiar el fondo
El siguiente código puede cumplir con sus requisitos:
(El fondo del escritorio se puede cambiar periódicamente)
Private Sub Timer1_Timer() 'Se repite una vez por minuto p>
Dim FileName As String
Dim Ret As Long
Dim MyValue As Integer
If ListFile.ListCount gt 0 And (TimeCount Mod TimeValue; ) = 0 Entonces 'Reemplazar con el fondo de pantalla seleccionado
Si Option1.Value = True Entonces 'Reemplazar secuencialmente
Si FileNum gt ListFile.ListCount Entonces FileNum = 1
FileName = ListFile.List(FileNum - 1)
FileNum = FileNum 1
ElseIf Option2.Value = True Then 'Reemplazar aleatoriamente
Aleatorizar ' para aleatorio El generador de números realiza la acción de inicialización
MyValue = Int(ListFile.ListCount * Rnd) ' Genera un valor aleatorio entre 0 y el número en LISTBOX y (ListCount-1).
FileName = ListFile.List(MyValue)
Fin si
Si fs.FileExists(FileName) Entonces '¿Existe el archivo?
Si Option3.Value = True Then 'Tile
rc = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) 'Abre el valor de la clave de registro correspondiente
rc = RegSetValueEx(hKey , "TileWallpaper", 0, REG_SZ, ByVal "1", 2) 'Escribe la información del valor clave correspondiente
rc = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0", 2 ) 'Escribe la información del valor clave correspondiente
Ret = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") 'Escribe el resultado de reemplazo en la fase correspondiente en Win.ini p >
Ret = WritePrivateProfileString("Desktop", "TileWallpaper", "1", "Win.ini") 'El resultado del reemplazo se escribe en la fase correspondiente en Win.ini
Ret = WritePrivateProfileString( "Desktop", "WallpaperStyle", "0", "Win.ini") 'Escribe el resultado del reemplazo en la fase correspondiente en Win.ini
Ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0amp;, ByVal FileName, SPIF_UPDATEINIFILE) 'Actualizar información de parámetros del sistema
ElseIf Option4.Value = True Then 'Stretch
rc = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) 'Abre el correspondiente Valor de clave de registro
rc = RegSetValueEx(hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) 'Escribe la información del valor clave correspondiente
rc = RegSetValueEx(hKey , " WallpaperStyle", 0, REG_SZ, ByVal "2", 2) 'Escribe la información del valor clave correspondiente
Ret = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") 'Replace El resultado se escribe en la fase correspondiente en Win.ini
Ret = WritePrivateProfileString("Desktop
", "TileWallpaper", "0", "Win.ini") 'Escribe el resultado de reemplazo en la fase correspondiente en Win.ini
Ret = WritePrivateProfileString("Desktop", "WallpaperStyle", "2 ", "Win.ini") 'Escribe el resultado del reemplazo en la fase correspondiente en Win.ini
Ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0amp;, ByVal FileName, SPIF_UPDATEINIFILE) 'Actualiza la información de los parámetros del sistema
ElseIf Option5.Value = True Then 'Centered
rc = RegOpenKeyEx(HKEY_CURRENT_USER, gREGKEYWallPaper, 0, KEY_ALL_ACCESS, hKey) 'Abre el valor de la clave de registro correspondiente
rc = RegSetValueEx (hKey, "TileWallpaper", 0, REG_SZ, ByVal "0", 2) 'Escribe la información del valor clave correspondiente
rc = RegSetValueEx(hKey, "WallpaperStyle", 0, REG_SZ, ByVal "0 ", 2) 'Escribe la información del valor clave correspondiente
Ret = WritePrivateProfileString("Desktop", "Wallpaper", FileName, "Win.ini") 'Escribe el resultado del reemplazo en la fase correspondiente en Win. ini
Ret = WritePrivateProfileString("Desktop", "TileWallpaper", "0", "Win.ini") 'Escribe el resultado del reemplazo en la fase correspondiente en Win.ini
Ret = WritePrivateProfileString("Desktop", "WallpaperStyle", "0", "Win.ini") 'Escribe el resultado del reemplazo en la fase correspondiente en Win.ini
Ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0amp; , ByVal FileName, SPIF_UPDATEINIFILE) 'Actualizar información de parámetros del sistema
End If
End If
End If
TimeCount = TimeCount 1 ' Debido a que el intervalo de tiempo del contador no puede ser mayor que 65535 milisegundos, se adopta este método de conteo
End Sub