AutoIt – Change Wallpaper – RegWrite

email me

_ChangeWallpaper("c:\Documents and Settings\Pictures\MyImage.bmp",1) ; only a simple cut & paste

Func _ChangeWallpaper($sFile,$iType)

; Changes the wallpaper to $sFilename using $iType as:
; 1 Tiled
; 2 Centered
; 3 Stretched
; any other value (usually 0) unchanged
;
; Returns
; 0 if everything is alright.
; -1 if $sFile does not exist. @error is set to 1
; -2 if £sFile is not a .bmp file. @error is set to 2

If Not FileExists($sFile) Then
SetError(1)
Return -1
EndIf
If StringTrimLeft($sFile,StringInStr($sFile,'.',0,-1)) <> 'bmp' Then
SetError(2)
Return -2
EndIf

Select
Case $iType = 1
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','1')
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','0')
Case $iType = 2
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','0')
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','0')
Case $iType = 3
RegWrite('HKCU\Control Panel\Desktop','TileWallpaper','reg_sz','0')
RegWrite('HKCU\Control Panel\Desktop','WallpaperStyle','reg_sz','2')
Case Else

EndSelect

RegWrite('HKCU\Control Panel\Desktop','Wallpaper','reg_sz',$sFile)
DllCall("User32.dll","int","SystemParametersInfo","int",20,"int",0,"str",$sFile,"int",0)
Return 0
EndFunc