Ordner Hintergund ändern

  • So... :D Nachdem ich dieses Tutorial hier gesehehn hatte ( http://www.youtube.com/watch?v=uMNSLxhL5FU&feature=related ), hab ich mir gedacht, dass das auch einfacher geh, und habe mich mal daran gemacht ein kleines Programm dafür zu schreiben :P


    Ich weiß es ist noch sehr durcheinander und sowas aber es tut, was es soll :P


    Bisher gefundener Fehler: Arbeitplatz kann nicht ausgewählt werden, da es kein Pfad ist.. keine Ahnung, wie ich das beheben könnte.


    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #NoTrayIcon
    Guicreate ( "Background Changer", 360, 100, -1, -1 )
    GUISetState ( @sw_show )
    $button1 = GUICtrlCreateButton ( "Set Directory", 10, 10, 80, 80 )
    $button2 = GUICtrlCreateButton ( "Set Image", 100, 10, 80, 80 )
    GUICtrlSetState ( $button2, $gui_hide)
    $button3 = GUICtrlCreateButton ( "Set Text Color", 190, 10, 80, 80)
    GUICtrlSetState ( $button3, $gui_hide)
    $button4 = GUICtrlCreateButton ( "Go!", 280, 20, 60, 60 )
    GUICtrlSetState ( $button4, $gui_hide)
    FileDelete ( @tempdir & "\desktop.txt" )
    FileWrite ( @tempdir &"\desktop.txt", "[{BE098140-A513-11D0-A3A4-00C04FD706EC}]" & @crlf & "Attributes=1" & @crlf )
    $edit1 = GUICtrlCreateEdit ( "" , 10, 10 )
    GUICtrlSetState ( $edit1, $gui_hide)
    $edit2 = GUICtrlCreateEdit ( "" , 10, 20 )
    GUICtrlSetState ( $edit2, $gui_hide)
    $edit3 = GUICtrlCreateEdit ( "" , 10, 30 )
    GUICtrlSetState ( $edit3, $gui_hide)

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

    While 1

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

    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then
    ExitLoop
    endif
    ;==========PATH=========,
    if $msg = $button1 Then
    $path = FileSelectFolder ( "Find Folder", "", "" )
    if fileexists ( $path & "\desktop.ini" ) Then
    FileDelete ( $path & "\desktop.ini" )
    EndIf
    if $path == "" then
    msgbox (48, "Error", "Please Select a Folder")
    else
    GUICtrlSetData ( $edit1, $path )

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

    GUICtrlSetState ( $button2, $gui_show )
    EndIf
    EndIf
    ;========IMAGE=====;
    if $msg = $button2 Then
    $image = FileOpenDialog ( "Find Image", @mydocumentsdir, "Images (*.jpg;*.bmp)" )
    if $image == "" then
    msgbox (48, "Error", "Please Select an Image")
    else
    GUICtrlSetData ( $edit2, $image )
    GUICtrlSetState ( $button3, $gui_show )

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

    EndIf
    EndIf

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

    ;========COLOR========,
    if $msg = $button3 Then
    $color = inputbox ( "Color", "Enter the Code for the Text Color" & @CRLF & @CRLF &"000000 is black FFFFFF is white" )
    $number = StringLen( $color )
    if $color > 6 Then
    msgbox (48, "Error", "You've entered a wrong number of characters" )
    elseif $number = 0 Then
    msgbox (48, "Error", "You've entered a wrong number of characters" )
    elseif $number == 6 Then
    GUICtrlSetState ( $button4, $gui_show )
    $read = StringLeft ( $color, 6 )
    GUICtrlSetData ( $edit3, $read )

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

    EndIf

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

    EndIf

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

    if $msg = $button4 Then
    $read1 = GUICtrlRead ( $edit1 )
    $read2 = GUICtrlRead ( $edit2 )
    $read3 = GUICtrlRead ( $edit3 )
    FileWriteLine ( @tempdir & "\desktop.txt", "IconArea_Image=" & '"' & $read2 & '"' & @crlf & "iconarea_text=0x00" & $read3 & @crlf & "[.ShellClassInfo]" & @crlf & "ConfirmFileOp=0")
    FileCopy ( @tempdir & "\desktop.txt", $read1 & "\desktop.ini" , 1 )
    FileSetAttrib ( $read1 & "\desktop.ini", "+H" )
    run ( 'Attrib +s ' & '"' & $read1 & '"', @SystemDir)
    EndIf

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

    WEnd

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


    Hier noch eine Adresse für Farb-Codes: http://www.eligr.com/images/colors.gif


    Viel Spaß,


    MfG eMkay

    Einmal editiert, zuletzt von eMkay (17. Juli 2009 um 18:04)

  • Bei mir läuft es einwandfrei^^
    Cooles Skript was ich noch schön fände, wenn man, um ein neues Bild auszuwählen, nicht das ganze tool neustarten muss^^

  • Achso ja entschuldigung Sithlord, ich hatte vergessen zu erwähnen, dass das unter Vista leider mit diesem Weg nicht funktioniert :D

  • Ich hätte es bässer gefunden wen man noch dem skript sagen kann ob das bild gestreckt oder neben einander angezeigt werden soll :!:
    und eine lösch funktion die das bild wieder entfernt were auch hilfreich

  • Ja Löschfunktion wäre gut, aber das Bild Strecken oder Nebeneinander anzeigen geht so weit ich weiß nicht :huh: wäre aber 'ne coole Idee.. Ich forsch' mal nach ;)

  • Schönes Skript,
    aber warum musst du immer so riesig schreiben? normale Größe reicht doch auch und stört den Lesefluss nicht.

  • das mit dem nebeneinander oder gestreckt, im Desktop heisst das "TileWallpaper=1" für nebeneinander und "WallpaperStyle=2" für gestreckten hintergrund
    aber das gilt für den Desktop hintergrund (ich weiss das wegen meinem projekt schon auswendig)
    aber dass man den hintergrund ncih formatieren kann is halb so schlimm, schlimm is wirklich eher dass man jedes mal das tool starten muss und den pfad suchen,
    gerade so schlimm ist es dass er die bestehende Desktop.ini LÖSCHT
    ich könnte vielleicht das ganze in mein projekt einbauen und zwar so dass er den aktuellen pfad im explorer liest und dann nur zum bild auffordert... oder für den text vllt auch noch...

    Dies ist ein Arzeneimittel.
    Bei Risiken und Haluzinationen fressen sie die Packungsbeilage und schlagen Sie ihren Arzt oder Apotheker.
    Jede Haftung wird abgelent.

    Vielen Dank für Ihre Kundentreue.
    mfg. TimBlo

    Aperture Science

    http://www.youtube.com/watch?v=Y6ljFaKRTrI

  • Mhh.. Okay, dass er die Desktop.ini löscht ist vielleicht doch keine gute Idee. Thx TimBlo :)

    Wäre schlauer, wenn er den Text in die bestehende Desktop.ini reinschreibt.

    Ich setz' mich gleich mal ran ;)


    MfG eMkay