Dateien löschen oder bewegen per script

  • Guten Morgen!!
    Also es dreht sich tatsächlich um BF 2 (da staune ich nicht schlecht das ihr das so einfach rausgefunden habt!) alle funktionstasten sind eigentlich mit funktionen für bf2 belegt. allerdings: fraps kann man über f9 starten das funktioniert "in game". ich habe das script auch mal zu einer exe konvertiert, trotzdem reagiert es nicht "in game"...da frage ich mich: warum funzt das bei fraps?? kann man das nicht auf das script übertragen?

  • Also erstens:

    namen sehen ungefähr so aus:
    BF2 2008-11-07 22-15-37-96.avi
    BF2 2008-11-07 22-20-55-32.avi
    BF2 2008-12-02 22-51-01-03.avi
    BF2 2008-12-02 22-51-10-89.avi
    hilft das was, ich glaube die sind nach datum uhrzeit, und sonstwas aufgebaut...

    Siehe 'BF2'... War nicht schwer :D

    Nun zu deinem Problem. Probier erstmal ob das Script ohne die "alle funktionstasten sind eigentlich mit funktionen für bf2 belegt" - geht ;) Wenn Ja, solltest du deine anderen Scripts nochmal überfliegen :D Oder hast du nur das eine Script? :huh: Dann sind die Tasten vielleicht In-Game belegt. ?(

  • LOL* ach ja stimmt...die dateinamen:), es gibt kein anderes script das sonst noch läuft, bei bf2 sind alle Funktionstasten für Fahrzeugfunktionen belegt. Trotzdem läßt sich fraps über F9 starten, im Vordergrund im Bildschirm sieht man die Anzahl der aktuellen Bildrate...deswegen vermute ich das da die lösung liegt.

  • Vielleicht weil Fraps ein "Offizielles" Programm ist das nicht geblockt wird? Also von allen Spielen akzeptiert wird weil es nur Videos aufnimmt. Und fast jedes Spiel blockt AutoIt ^^ (Meiner Meinung nach). Nimm doch mal die Fahrzeugtaste In-Game raus. Vielleicht funktioniert dann dein Script. ?(

  • Achsoooooo, na gut das probier ich mal.

    (übrigens möchte ich an dieser Stelle nochmal betonen das mir anno2008 dieses script geschrieben hat, wofür ich ihm äusserst dankbar bin, da ich selbst gar keine ahnung vom programmieren hab...THX!!)

  • tja,trotz änderung der steuerung, unterdrückt bf2 das script (bzw exe,habs konvertiert)leider trozdem...

  • Ansonsten einfach eine While-WEnd Schleife die checkt ob es neue Videos gibt und das neuste dann löscht?! 8o

  • da ich das programm nicht selbst geschrieben habe muss ich mal s ungeschickt fragen; wo füge ich das denn ein? (quelltext auf seite 1 siehe anno2008)

    na ja die idee mit der schleife ist echt prima! wozu überhaupt filmen was man spielt? vielleicht sollte ich mich lieber mit interessanteren sachen wie zum beispiel autoit beschäfftigen; dann müsste ich niemandem mit meinem blöden gefrage belästigen :D

  • rayman , normal werden hier keine sourcecodes vorgegeben , nur Tipps und Hilfen.
    Also versuch es doch einmal selber.. wenn du es nicht schaffst helfei ch dir selbstverständlich.

  • Ok, ich schaff das schon...

    Also ich habe das hier versucht, aber es funktioniert nicht...bin ich den einigermaßen auf dem richtigen weg?

    Spoiler anzeigen

    #include <File.au3>

    ; grüne Schrift = Kommentar = wird "überlesen"

    HotKeySet("{F8}", "_start") ; Hotkeyset = lege Hotkey fest ; der Hotkey ruft beim drücken der taste die Funktion _start() auf s.u.
    _IsPressed("{F8}", "_start")

    While 1
    Sleep ( 250 )
    If _IsPressed("{F8}","_start")
    ExitLoop
    EndIf
    WEnd

    While 1 ;while-Schleife heißt, wiederhole etwas, solange, bis die Anweisung (das was hinter dem While steht (in dem Fall1))
    ;True ist. 1 ist immer True also ist das ne Endlosschleife d.h. er wiederholt immer weider das was unter dem While steht
    Sleep(100) ; das wird immer weider wiederholt. sleep = schlafen = nix machen in der Zeit ; sleep(100) = 100 msec nix machen
    WEnd ; damit macht man die While Schleife ienfach nochmal zu

    Func _start() ; Funktion, die von dem Hotkey aufgerufen wird, dazu wird die While Schleife kurzzeitig vom Hotkey-Befehl "übersprungen"
    $array = _FileListToArray("J:\2.VISUALS\fraps\fraps-ingame\1", "*.avi", 1) ; liest die *.avi Dateien ein, die im angegebenen Verzeichnis liegen ; sie sind zum Glück dann schon ichtig sortiert ;)
    If IsArray($array) Then ; wenn die Variable $array ein Array ist, dann wird der Code unten drunter ausgeführt.
    ; also wenn praktisch beim uaflisten der Dateien kein Error ist, dann werden die Befehle unter der If-Then Abfrage ausgeführt
    $lastfile = $array[UBound($array) - 1] ; der Variablen $lastfile wird der letzte Eintrag im Array $array zugeordnet = letzte Datei
    FileDelete("J:\2.VISUALS\fraps\fraps-ingame\1\" & $lastfile) ; löscht diese Datei
    EndIf ; schliesst die If-Then Abfrage
    EndFunc ;==>_start

    2 Mal editiert, zuletzt von rayman (4. Dezember 2008 um 21:30)

    • Offizieller Beitrag

    Ansonsten einfach eine While-WEnd Schleife die checkt ob es neue Videos gibt und das neuste dann löscht?! 8o

    Er will doch garnicht jedes neue Video löschen sondern nur nach Tastendruck(Hotkey).

  • Ja , aber das scheint ja nicht zu klappen.
    Oder man lässt sich die Videos anzeigen und dann auswählen und löschen...

  • Versuchs doch einfach, wie schon geraten, mit IsPressed().
    Vielleicht funktioniert es dann. Mal sehn ;)

  • Ok, ich schaff das schon...

    Also ich habe das hier versucht, aber es funktioniert nicht...bin ich den einigermaßen auf dem richtigen weg?

    Spoiler anzeigen

    #include <File.au3>

    ; grüne Schrift = Kommentar = wird "überlesen"

    HotKeySet("{F8}", "_start") ; Hotkeyset = lege Hotkey fest ; der Hotkey ruft beim drücken der taste die Funktion _start() auf s.u.
    _IsPressed("{F8}", "_start")

    While 1
    Sleep ( 250 )
    If _IsPressed("{F8}","_start")
    ExitLoop
    EndIf
    WEnd

    While 1 ;while-Schleife heißt, wiederhole etwas, solange, bis die Anweisung (das was hinter dem While steht (in dem Fall1))
    ;True ist. 1 ist immer True also ist das ne Endlosschleife d.h. er wiederholt immer weider das was unter dem While steht
    Sleep(100) ; das wird immer weider wiederholt. sleep = schlafen = nix machen in der Zeit ; sleep(100) = 100 msec nix machen
    WEnd ; damit macht man die While Schleife ienfach nochmal zu

    Func _start() ; Funktion, die von dem Hotkey aufgerufen wird, dazu wird die While Schleife kurzzeitig vom Hotkey-Befehl "übersprungen"
    $array = _FileListToArray("J:\2.VISUALS\fraps\fraps-ingame\1", "*.avi", 1) ; liest die *.avi Dateien ein, die im angegebenen Verzeichnis liegen ; sie sind zum Glück dann schon ichtig sortiert ;)
    If IsArray($array) Then ; wenn die Variable $array ein Array ist, dann wird der Code unten drunter ausgeführt.
    ; also wenn praktisch beim uaflisten der Dateien kein Error ist, dann werden die Befehle unter der If-Then Abfrage ausgeführt
    $lastfile = $array[UBound($array) - 1] ; der Variablen $lastfile wird der letzte Eintrag im Array $array zugeordnet = letzte Datei
    FileDelete("J:\2.VISUALS\fraps\fraps-ingame\1\" & $lastfile) ; löscht diese Datei
    EndIf ; schliesst die If-Then Abfrage
    EndFunc ;==>_start

  • Das kann auch garnicht funktionieren, da die Args von _IsPressed() nicht richtig sind. Hier die Lösung:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Misc.au3>

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

    ; grüne Schrift = Kommentar = wird "überlesen"

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

    ;~ HotKeySet("{F8}", "_start") ; Hotkeyset = lege Hotkey fest ; der Hotkey ruft beim drücken der taste die Funktion _start() auf s.u.

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

    $dll = DllOpen("user32.dll")
    While 1
    Sleep (250)
    If _IsPressed("77", $dll) Then
    _start()
    ExitLoop
    DllClose($dll)
    EndIf
    WEnd

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

    While 1 ;while-Schleife heißt, wiederhole etwas, solange, bis die Anweisung (das was hinter dem While steht (in dem Fall1))
    ;True ist. 1 ist immer True also ist das ne Endlosschleife d.h. er wiederholt immer weider das was unter dem While steht
    Sleep(100) ; das wird immer weider wiederholt. sleep = schlafen = nix machen in der Zeit ; sleep(100) = 100 msec nix machen
    WEnd ; damit macht man die While Schleife ienfach nochmal zu

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

    Func _start() ; Funktion, die von dem Hotkey aufgerufen wird, dazu wird die While Schleife kurzzeitig vom Hotkey-Befehl "übersprungen"
    $array = _FileListToArray("J:\2.VISUALS\fraps\fraps-ingame\1", "*.avi", 1) ; liest die *.avi Dateien ein, die im angegebenen Verzeichnis liegen ; sie sind zum Glück dann schon ichtig sortiert ;)
    If IsArray($array) Then ; wenn die Variable $array ein Array ist, dann wird der Code unten drunter ausgeführt.
    ; also wenn praktisch beim uaflisten der Dateien kein Error ist, dann werden die Befehle unter der If-Then Abfrage ausgeführt
    $lastfile = $array[UBound($array) - 1] ; der Variablen $lastfile wird der letzte Eintrag im Array $array zugeordnet = letzte Datei
    FileDelete("J:\2.VISUALS\fraps\fraps-ingame\1\" & $lastfile) ; löscht diese Datei
    EndIf ; schliesst die If-Then Abfrage
    EndFunc ;==>_start

    [/autoit]

    Erklärung: Für jeder Taste, bei der Funktion _IsPressed(), gibt es eine bestimmte Zahl (In der AutoIt Hilfe ist eine Liste zu finden). Und für die Taste F8 ist die Zahlenkombination folgende: "77"

    Achja und ich möchte dich mal auf den "Edit - Button" des Forums hinweisen. Bitte benutze ihn das nächste mal, wenn du einen Doppelpost planst ;)

    Wenn du irgendwelche Fragen hast kannst du dich gerne bei mir unter ICQ melden. Hier im Forum ist Threads schreiben so blöd. Also wie gesagt: ICQ = mehr Support <> *freu* :rolleyes:

    5 Mal editiert, zuletzt von DeadmanFinal (4. Dezember 2008 um 21:49)

  • danke für die hilfestellung...werde es mrgen im ausgeschlafenen zustand nochmal probieren...euch noch nen schönen abend!! ...nur kurz gefragt: wieso 2x include? muß für jede funktion nen include geschrieben werden?

  • Hi,
    @DeadmanFinal dein Script beinhaltet noch kleine Fehler :D.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Misc.au3>

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

    While 1
    If _IsPressed("77") Then ;F8
    While _IsPressed("77")
    Sleep(10)
    WEnd
    _start()
    EndIf
    Sleep(100)
    WEnd

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

    Func _start()
    $array = _FileListToArray("J:\2.VISUALS\fraps\fraps-ingame\1", "*.avi", 1)
    If IsArray($array) Then
    $lastfile = $array[UBound($array) - 1]
    FileDelete("J:\2.VISUALS\fraps\fraps-ingame\1\" & $lastfile)
    EndIf
    EndFunc ;==>_start

    [/autoit]

    Ich habs mal verbessert, mit F8 sollte es jetzt laufen ...

  • also wie soll ein ahnungsloser wie ich bitte darauf kommen!? ...wo habt ihr eigentlich eure aller ersten schritte im autoit gelernt? am wochenende würde ich mich gerne hinsetzen und ein bisschen autoit "lernen"...

  • Neija okay. Habe das Script auch nur so hingeschmiert... *Gleichberechtigunganforder* :rofl:
    Du hast es halt in Kurzfassung gefassen. <-- ?(

    Wegen deiner Frage: Es braucht 2 Includes weil du 2 unterschiedliche Funktionen hast. Es sind 2 verschiedene .au3 Dateien die Funktionen beinhalten - Deswegen auch 2x Include.

    Hoffe konnte dir deine Frage beantworten... Wusste nicht so recht wie ich das erklären sollte. Dir wünsche ich ausserdem noch einen schönen Abend und gutes Gelingen beim AutoIt lernen :rolleyes: