Desktop Bild ändern (JPG)

  • Hallo,

    Ich habe durch die SuFu schon einiges zu dem thema gefunden, aber nur mit .bmp
    ich suche eine lösung, damit ich auch .jpg bilder als hintergrund auf dem desktop einstellen kann.

    .bmp will ich nicht, weil wenn ich den pc dann neustarte, ist das vorher mit autoit eingestellte hintergrundbild weg, nur noch blauer bildschirm 8|:cursing:

    kann mir bitte jemand helfen?
    über regedit klappts i-wie auch nicht, da es nicht aktualisiert wird.

    Einmal editiert, zuletzt von Fisch (26. Oktober 2008 um 13:57)

  • Letztendlich wird sowieso eine bmp gespeichert, egal ob du jpg oder sonstwas auswählst.
    Konvertiere das jpeg in ein bmp und benutz diese Funktion

    [autoit]

    Func _ChangeWallpaper($bmpfile, $iposition = "3")
    Switch $iPosition
    Case 1; Tile
    RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper', 'reg_sz', '1')
    RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '0')
    Case 2; Center
    RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper', 'reg_sz', '0')
    RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '0')
    Case 3; Stretch
    RegWrite('HKCU\Control Panel\Desktop', 'TileWallpaper', 'reg_sz', '0')
    RegWrite('HKCU\Control Panel\Desktop', 'WallpaperStyle', 'reg_sz', '2')
    EndSwitch
    RegWrite('HKCU\Control Panel\Desktop', 'Wallpaper', 'reg_sz', $bmpfile)
    DllCall("user32", "int", "SystemParametersInfo", "int", 20, "int", 0, "str", $bmpfile, "int", 0)
    EndFunc

    [/autoit]


    Mit der Funktion hatte ich bisher keine Probleme, vielleicht liegt die Sache mit dem "blauen Bildschirm" einfach nur an der Funktion die du benutzt

  • Ok, danke.
    funktioniert soweit :)
    hab jetzt aber noch ein problem, weiß aber nicht woran das liegen könnte.

    wenn man auf dem desktop "rechtsklickt" und dann auf "Symbole anornden nach > Desktopsymbole anzeigen" klickt, kommt das zuletzt als hintergrundbild verwendete .jpg bild(!) und nicht das aktuelle .bmp bild.
    ist das normal? oder könnte das mal jemand testen, ob das bei ihm/ihr auch so ist?
    ich hoffe ich hab mich verständlich ausgedrückt :D

  • So müsste eigentlich das Wallpaper übernommen und gespeichert werden:

    [autoit]

    Global Const $SPIF_SENDWININICHANGE = 0x2
    Global Const $SPIF_UPDATEINIFILE = 0x1
    Global Const $SPI_SETDESKWALLPAPER = 20
    $bmpfile = "BildPfad\bild.bmp"
    DllCall("user32.dll", "int", "SystemParametersInfo", "uint", $SPI_SETDESKWALLPAPER, "uint", 0, "str", $bmpfile, "uint", BitOR($SPIF_SENDWININICHANGE,$SPIF_UPDATEINIFILE))

    [/autoit]