Wallpaper Changer

  • Hallo

    Ich habe jetzt endlich mein erstes kleines Script geschrieben. :D Jeder fängt mal klein an. ;)

    Auch wenn die meisten von euch das selber coden können und der Code danach besser aussieht, stell ich es mal rein.

    Das Script ist noch ausbaufähig. Im Moment erfüllt es aber mein Grundgedanke. 8)

    Zur Funktion:

    Das Hintergrundbild ändert sich jeweils am Abend um 20:00 und Morgens um 08:00. Wenn ihr das Script startet wir die Uhrzeit automatisch geprüft und eventuell das Hintergrundbild geändert.

    Das wars eigentlich, wie gesagt nichts großes.

    Viel Spass damit!

    [autoit]


    #NoTrayIcon

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

    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <Array.au3>

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

    Local $6Zeit = 60000
    Local $Check = "Deaktiviert"

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

    GUICreate("Wallpaper Changer", 450, 220, 100, 100)
    $Label_HelloWorld = GuiCtrlCreateLabel("Bilder", 45, 5)
    $Button = GUICtrlCreateButton("Ordner wählen", 20, 20, 80, 25)
    $Button3 = GUICtrlCreateButton("Start", 330, 180, 80, 25)
    $Input = GUICtrlCreateInput("", 110, 20, 300, 25)
    $Label_HelloWorld3 = GuiCtrlCreateLabel("Start ab", 40, 107)
    $Combo = GUICtrlCreateCombo("", 110, 105, 150, 25)
    GUICtrlSetData(-1, "00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23")
    $Combo1 = GUICtrlCreateCombo("", 260, 105, 150, 25)
    GUICtrlSetData(-1, "00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59")
    $Label_HelloWorld4 = GuiCtrlCreateLabel("Intervall", 42, 142)
    $Combo2 = GUICtrlCreateCombo("", 110, 140, 300, 25)
    GUICtrlSetData(-1, "0.1666666666666667|0.5|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|120|180|240|360|720|1440")
    $Label_HelloWorld5 = GuiCtrlCreateLabel("Mischen", 40, 50)
    $Checkbox = GUICtrlCreateCheckbox("", 55, 70, 0, 0)
    $Label = GuiCtrlCreateLabel("Deaktiviert", 110, 70, 300, 25)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    case $msg = -3
    Exit
    case $msg = $Button
    $var = FileSelectFolder("Choose Folder", "")
    $var2 = $var & "\"
    GUICtrlSetData($Input, "" & $var2)
    case $msg = $Combo
    $Zeit023 = GUICtrlRead($Combo)
    case $msg = $Combo1
    $Zeit059 = GUICtrlRead($Combo1)
    case $msg = $Combo2
    $Zeit160 = GUICtrlRead($Combo2)
    case $msg = $Checkbox
    If GUICtrlRead($Checkbox) = 1 Then
    $Check = "Aktiviert"
    GUICtrlSetData(-1, "Aktiviert")
    Elseif GUICtrlRead($Checkbox) = 4 Then
    $Check = "Deaktiviert"
    GUICtrlSetData(-1, "Deaktiviert")
    EndIf
    case $msg = $Button3
    GUISetState(@SW_HIDE)
    ExitLoop
    EndSelect
    WEnd

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

    $search = FileFindFirstFile($var2 & "*.*")

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

    $Liste = _FileListToArray($var2, "*", 1)

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

    While 5
    $ZeitF = $Zeit160 * $6Zeit
    If $Check = "Aktiviert" Then
    While 6
    If $Zeit023 = @HOUR Then
    While 7
    If $Zeit059 = @MIN Then
    _Adlib2()
    _Zeit2()
    While 8
    Sleep(60)
    WEnd
    EndIf
    Sleep(60)
    WEnd
    EndIf
    Sleep(60)
    WEnd
    Else
    ExitLoop
    EndIf
    Sleep(60)
    WEnd

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

    While 2
    $ZeitF = $Zeit160 * $6Zeit
    If $Zeit023 = @HOUR Then
    While 3
    If $Zeit059 = @MIN Then
    _Adlib()
    _Zeit()
    While 4
    Sleep(60)
    WEnd
    EndIf
    Sleep(60)
    WEnd
    EndIf
    Sleep(60)
    WEnd

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

    Func _Adlib()
    AdlibRegister("_Zeit", $ZeitF)
    EndFunc

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

    Func _Adlib2()
    AdlibRegister("_Zeit2", $ZeitF)
    EndFunc

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

    Func _Zeit()
    $file = FileFindNextFile($search)
    If $file = "" Then
    $search = FileFindFirstFile($var2 & "*.*")
    $file = FileFindNextFile($search)
    EndIf
    $var3 = ($var2 & $file)
    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "WallpaperStyle", "REG_SZ", 4)
    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", $var3)
    DllCall("user32.dll", "int", "SystemParametersInfo", "int", 20, "int", 0, "str", $var3, "int", 0)
    EndFunc

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

    Func _Zeit2()
    $ArrayA = ($Liste[0])
    $random = Random(1, $ArrayA, 1)
    $ArrayB = ($Liste[$random])
    $var4 = ($var2 & $ArrayB)
    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "WallpaperStyle", "REG_SZ", 4)
    RegWrite("HKEY_CURRENT_USER\Control Panel\Desktop", "Wallpaper", "REG_SZ", $var4)
    DllCall("user32.dll", "int", "SystemParametersInfo", "int", 20, "int", 0, "str", $var4, "int", 0)
    EndFunc

    [/autoit]

    Gruss :rock:

    6 Mal editiert, zuletzt von Chaspel (3. August 2013 um 22:30)

  • Hey

    Habe nun mein Script im ersten Post aktualisiert.

    Nun kann man einstellen ab wann und in welchen Intervallen das Bild geändert wird.

    Bis jetzt ist es aber leider nur mit 2 Bilder möglich. :S

    Gruss

    Edit:

    Nun kann man einen ganzen Ordner einbinden.

    Soweit bin ich eigentlich fertig. Fehlt nur noch ein Zufallsgenerator.

    Einmal editiert, zuletzt von Chaspel (3. August 2013 um 17:18)