Desktophintergrund ändern aber das bild zentrieren ?

  • Hallo liebe autoit Gemeinde

    ich habe das Forum nach ener möglichkeit gesucht ohne verzögerung den desktop hintergrund zu ändern und bin auch fündig geworden das problem ist nur das der script den ich gefunden habe das bild als "nebeneinander" einstellt
    das schlechte daran ist das ich mmit etwas kleineren Bildern arbeiten möchte da es auch bei freunden Funktionieren soll . Und jetzt die Frage/bitte wie kann ich den folgenden Code umschreiben sodass er das bild asl "Zentriert" einstellt

    MFG Eistee

    Spoiler anzeigen
    [autoit]

    Global Const $SPIF_SENDWININICHANGE = 0x2
    Global Const $SPIF_UPDATEINIFILE = 0x1
    Global Const $SPI_SETDESKWALLPAPER = 20
    Global $bild1 = "C:\BS\PICCHANGE\1\bild.bmp"
    Global $bild2 = "C:\BS\PICCHANGE\2\bild.bmp"
    Global $bild3 = "C:\BS\PICCHANGE\3\bild.bmp"
    Global $bild4 = "C:\BS\PICCHANGE\4\bild.bmp"
    Global $bild5 = "C:\BS\PICCHANGE\5\bild.bmp"
    Global $bild6 = "C:\BS\PICCHANGE\6\bild.bmp"
    Global $bild7 = "C:\BS\PICCHANGE\7\bild.bmp"
    Global $bild8 = "C:\BS\PICCHANGE\8\bild.bmp"
    Global $bild9 = "C:\BS\PICCHANGE\9\bild.bmp"
    Global $bild10 = "C:\BS\PICCHANGE\10\bild.bmp"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $size = FileGetSize("C:\BS\PICCHANGE\1\bild.bmp")
    If $size = 0 then _Install ()

    [/autoit] [autoit][/autoit] [autoit]

    Func _Install ()
    DirCreate("C:\BS\PICCHANGE\1")
    DirCreate("C:\BS\PICCHANGE\2")
    DirCreate("C:\BS\PICCHANGE\3")
    DirCreate("C:\BS\PICCHANGE\4")
    DirCreate("C:\BS\PICCHANGE\5")
    DirCreate("C:\BS\PICCHANGE\6")
    DirCreate("C:\BS\PICCHANGE\7")
    DirCreate("C:\BS\PICCHANGE\8")
    DirCreate("C:\BS\PICCHANGE\9")
    DirCreate("C:\BS\PICCHANGE\10")
    FileInstall("1.bmp", "C:\BS\PICCHANGE\1\bild.bmp")
    FileInstall("2.bmp", "C:\BS\PICCHANGE\2\bild.bmp")
    FileInstall("3.bmp", "C:\BS\PICCHANGE\3\bild.bmp")
    FileInstall("4.bmp", "C:\BS\PICCHANGE\4\bild.bmp")
    FileInstall("5.bmp", "C:\BS\PICCHANGE\5\bild.bmp")
    FileInstall("6.bmp", "C:\BS\PICCHANGE\6\bild.bmp")
    FileInstall("7.bmp", "C:\BS\PICCHANGE\7\bild.bmp")
    FileInstall("8.bmp", "C:\BS\PICCHANGE\8\bild.bmp")
    FileInstall("9.bmp", "C:\BS\PICCHANGE\9\bild.bmp")
    FileInstall("10.bmp", "C:\BS\PICCHANGE\10\bild.bmp")
    _1 ()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    _1 ()

    [/autoit] [autoit][/autoit] [autoit]

    Func _1 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild1, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _2()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _2 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild2, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _3()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _3 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild3, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _4()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _4 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild4, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _5()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _5 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild5, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _6()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _6 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild6, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _7()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _7 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild7, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _8()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _8 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild8, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _9()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _9 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild9, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _10()
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _10 ()
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bild10, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))
    Sleep(300000)
    _1()
    EndFunc

    [/autoit]
  • Hab die UDF noch gefunden und den 2 Parameter Style noch hinzugefügt.
    0, ist zentriert, 1 ist nebeneinander, 2 ist gestreckt.

    Spoiler anzeigen
    [autoit]

    $file="C:\Dokumente und Einstellungen\ackermann\Desktop\Unbenannt.bmp"
    ChangeDesktopWallpaper($file,0)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func ChangeDesktopWallpaper($bmp,$style=2)
    ;===============================================================================
    ; Usage: _ChangeDesktopWallPaper(@WindowsDir & '\' & 'zapotec.bmp')
    ; Parameter(s): $bmp - Full Path to BitMap File (*.bmp)
    ; $style - 0=Center, 1=tile windows, 2=stretched Edit by Greek
    ; Requirement(s): None.
    ; Return Value(s): On Success - Returns 0
    ; On Failure - -1
    ;===============================================================================

    [/autoit] [autoit][/autoit] [autoit]

    If Not FileExists($bmp) Then Return -1
    ;The $SPI* values could be defined elsewhere via #include - if you conflict,
    ; remove these, or add if Not IsDeclared "SPI_SETDESKWALLPAPER" Logic
    Local $SPI_SETDESKWALLPAPER = 20
    Local $SPIF_UPDATEINIFILE = 1
    Local $SPIF_SENDCHANGE = 2
    Local $REG_DESKTOP= "HKEY_CURRENT_USER\Control Panel\Desktop"

    [/autoit] [autoit][/autoit] [autoit]

    RegWrite($REG_DESKTOP, "TileWallPaper", "REG_SZ", $style)
    RegWrite($REG_DESKTOP, "WallpaperStyle", "REG_SZ", $style)
    RegWrite($REG_DESKTOP, "Wallpaper", "REG_SZ", $bmp)

    [/autoit] [autoit][/autoit] [autoit]

    DllCall("user32.dll", "int", "SystemParametersInfo", _
    "int", $SPI_SETDESKWALLPAPER, _
    "int", 0, _
    "str", $bmp, _
    "int", BitOR($SPIF_UPDATEINIFILE, $SPIF_SENDCHANGE))

    [/autoit] [autoit][/autoit] [autoit]

    Return 0
    EndFunc;==>_ChangeDestopWallpaper

    [/autoit]