1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. AutoFlip

Beiträge von AutoFlip

  • Telnet (busybox/linux) Dateimanager

    • AutoFlip
    • 2. Januar 2014 um 16:31

    Hallo Bandit,
    es freut mich, dass es geklappt hat.

    Nun ja, "wie WinSCP" ist vielleicht etwas übertrieben.

    Je nach Client und busybox Befehlssatz gibt es eben auch mal Probleme. Das gilt nicht nur für ls sondern auch durchaus für die gewählten Umwege des Dateitransfers. Und schnell und unbedingt zuverlässig ist der natürlich auch nicht gerade. Aber eben besser als nix. ;)

  • Telnet (busybox/linux) Dateimanager

    • AutoFlip
    • 2. Januar 2014 um 12:34

    Hallo bandit,
    gibt der echt kein Datum raus? Ist ja spannend!

    Also, du müsstest den regulären Ausdrucks in der ersten Zeile des lsFmt Arrays anpassen.
    Da müssen die Ergebnisse von 0 bis 10 (jeweils geklammert) die passenden Felder treffen.
    (Siehe Beispiele in dem Kommentar darüber)

    lsFmt[0]

    (Die Inhalte 5-9 Beschreiben das Datum und bleiben hier dann wohl leer)

    0 1 2 3 4 (5,6,7,8,9) 10
    drwxr-xr-x 2 0 0 706 sbin

    Folgender Eintrag sollte die erste Zeile in lsFmt dann ersetzen (ungetestet!)
    "([dlrwxr-]+)\s+([^ ]+)\s+([^ ]+)\s+([^ ]+)\s+([0-9]+)\s+()()()()()(.*)", _

    Hoffentlich klappts. :)

    Frohes Neues vom AutoFlip!

  • Länge einer Filmdatei auslesen

    • AutoFlip
    • 2. November 2011 um 14:34

    Die Spieldauer einer Mediendatei (falls das gefragt ist) liefert so weit ich weiß z.B. das Tool Mediainfo:
    http://mediainfo.sourceforge.net/de

    welches auch in einer CLI (CommandLineInterface) Version downloadbar ist.

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • AutoFlip
    • 31. Oktober 2011 um 08:21

    Hallo UEZ,
    supi, da hat sich meine Antwort ja erledigt. So sieht es bzgl. Base64 optimal aus.

  • File to Base64 String Code Generator v1.20 Build 2020-06-05

    • AutoFlip
    • 28. Oktober 2011 um 12:22

    Hallo UEZ,
    komfortable Funktion. Und danke für die anschaulichen Beispiele.

    Wie wäre es mit einer alternativen String-Darstellung als Base64?
    Das spart immerhin 50% im Vergleich zur Hex-Darstellung (6bit vs. 4bit).

    Siehe z.B. Hier:
    http://www.autoitscript.com/forum/topic/10…encoderdecoder/

  • Autoit telnet server

    • AutoFlip
    • 27. Oktober 2011 um 09:22

    Weiterreichendes zu Telnet findest Du hier:
    http://de.wikipedia.org/wiki/Telnet

    Dort sind insbesondere die Verweise zu den Terminal Type Options (IAC Codes) interessant, falls Du auf den Client bzgl. des Terminaltyps eingehen möchtest. Die IAC-Sequenzen sind Dir ja sicher schon untergekommen.

    Bei Windows Clients ist das Standard-Terminal "ANSI". Hier findest Du ein paar Infos dazu, auch zu den Farbcodes:
    http://en.wikipedia.org/wiki/ANSI_escape_code
    (CSI hat dabei nichts mit der Fernsehserie zu tun sondern steht für "ESC+[")

    Beim ECHO ist es so eine Sache. Der Server kann Zeichen zurücksenden (was er meist tut). Das hast Du ja unter Kontrolle und kannst ggf. über eine Variable steuern, ob Du Zeichen sendest oder nicht.

    Andererseits kann auch der Client selbst die getippten Zeichen anzeigen. "Local Echo" heißt das dann.
    Sollte das passieren, kann man von der Serverseite nicht sonderlich steuern. Manche Clients bieten im Verbindungsprofil schlicht eine Einstellung dafür an. Eventuell kann man den Server ankündigen lassen, daß er die Rückmeldung übernimmt (IAC WILL ECHO), dann könnte der Client einsehen, daß ein Local Echo keinen Sinn macht. Beim Passwort unterläßt man dann wie gesagt einfach die Rückmeldung.

    Hier Infos zur Telnet Echo Option:
    http://tools.ietf.org/html/rfc857

  • FileClose

    • AutoFlip
    • 26. Oktober 2011 um 10:30

    Die Win* Funktionen beziehen sich auf beliebige Fenster. Die Auswahl erfolgt über den übergebenen Fenstertitel.

    Zum Originalpost:
    Shell Execute führt das mit .PDF assoziierte Programm asynchron aus. D.h. die Ausführung des scripts läuft parallel.

    Die "Win"-Fkt auf die tobitron bereits hinwies sind hier die Lösung.

    Du muß gewisse Annahmen bzgl. des Fenstertitels treffen. Acrobat z.B. nennt gerne den Dateinamen (ohne pfad) zu Beginn des Fenstertitels. Andere Viewer (Foxit, Ghostview etc.) können das evtl. anders handhaben.

    Nach der Ausführung von ShellExecute solltest Du also zunächst auf das Erscheinen des Fensters mit dem entsprechenden Titel warten.
    Z.B.:

    Code
    Local $hndlWin = WinWait($aFiles[$i],30)


    (Beachte dabei ggf. den "WinTitleMatchMode")
    Dann prüfst Du die Rückgabe auf Erfolg und wartest bei erfolgreich geöffnetem Fenster mit WinWaitClose auf das schließen. Vor dem erneuten ausführen mit ShellExecute würde ich aber noch eine Pause mit Sleep einbauen die der PDF-Viewer Anwendung ausreichend Zeit gibt, sich zu beenden.

    Alternativ kannst Du mit Sleep eine gewisse Zeit warten und mit WinClose das Fenster vom Script aus schließen.

    FileOpen und FileClose macht da keinen Sinn. Das würde nur dann Sinn ergeben, wenn Du selbst etwas aus den PDF-Dateien herauslesen wolltest (was überhaupt nicht trivial ist).

  • Screenshots zu groß

    • AutoFlip
    • 21. Oktober 2011 um 21:44

    BinaryLen und BinaryMid?

  • Netzwerk Webserver

    • AutoFlip
    • 21. Oktober 2011 um 17:36

    Oder statt dessen 127.0.0.1 eingeben bzw. "localhost" ?
    (Außerdem sollte natürlich nicht ein anderer Server bereits auf Port 80 laufen)

  • Screenshots zu groß

    • AutoFlip
    • 21. Oktober 2011 um 17:34

    Du könntest entweder 1) die Bilddatei aufteilen oder 2) das Bild (in Kacheln) aufteilen.

    Bei 1) muesstest Du quasi TCP ein bisschen nachbilden und vor jedem Fragment einen Zaehler (Screenshot-Nr:X) und den Offset in der Bilddatei übertragen. Beim Empfänger daran denken, daß die Reihenfolge vertauscht sein kann.

    Bei 2) unterteilst Du den Bildschirm in Kacheln und hängst vor jedes Paket z.B. noch die x/y Position. Dann darf aber die Kachel nicht zu groß werden.

    Stellt sich natürlich die Frage wieso Du nicht gleich TCP nimmst... ich vermute mal ein Problem mit NAT? Oder gar Multicast?

  • APE Tags aus MP3s entfernen

    • AutoFlip
    • 18. Oktober 2011 um 13:52

    Das folgende Script verwende ich, um sogenannte "APE" Tags aus MP3-Dateien zu entfernen. Für ID3 Tags gibt es ja bereits AutoIt UDFs. Dieses Script ist für die Verwendung von der Kommandozeile ausgelegt, daher ist es für die "Console" zu übersetzen.

    Das Script ist nur sehr grob getestet. Da die MP3s direkt geändert werden ist also Vorsicht angesagt. Besser Ihr macht eine Sicherheitskopie von den MP3s bevor ihr das Script darauf ansetzt.

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>

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

    If $CmdLine[0]>0 Then
    Local $FileCnt
    For $FileCnt=1 To $CmdLine[0]
    RemoveAPE($CmdLine[$FileCnt])
    Next
    Else
    ConsoleWrite( _
    "Remove_APE" & @CRLF & _
    "Entfernt APE-Tags aus MP3-Dateien" & @CRLF & @CRLF & _
    "Anwendung:" & @CRLF & _
    "remove_ape.Exe <Dateiname1> [<Dateiname2> ....]" & @CRLF & @CRLF & _
    "Wildcards werden nicht erkannt." & @CRLF _
    )
    EndIf

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

    #cs
    Entfernt APE Tags aus MP3-Dateien
    Achtung: Bitte vorher stets ein Backup der MP3-Dateien anlegen, da dieses Tool die Dateien auch
    zerstören könnte.

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

    Vorgehen:
    APE Tags werden am Dateiende gesucht. Das ist eine Einschraenkung, aber zumindest die empfohlene
    Position.

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

    Siehe:
    http://wiki.hydrogenaudio.org/index.php?titl…2_specification
    "an APE tag should be placed after the the last frame, just before the ID3v1 tag (if any)."

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

    Dort koennen sich auch ID3V1 Tags befinden (Feste groesse 128 bytes)
    diese werden detektiert und ggf. nach dem Kuerzen erneut an die Datei angehaengt

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

    APE Tags enden mit einem speziellen Footer. Dieser wird erkannt und es wird die Version und laenge gelesen.
    Ab Version 2000 gibt es noch einen Header welcher zur laenger hinzuaddiert wird.
    Da dieser Header (wie auch der Footer) einen speziellen Tag aufweist, wird daraus sicherheitshalber
    bei Version 2 (2000) auch geprueft.

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

    #ce
    Func RemoveAPE($Filename)
    Local $hfile = FileOpen($Filename,16) ;open in binary mode

    FileSetPos($hfile,-128,2) ;#128 Bytes vom Dateiende (pruefe auf id3v1tag)
    Local $ID3v1Tag = FileRead($hfile)
    Local $EndOffs=0;

    Local $ID3v1ID = BinaryToString(BinaryMid($ID3v1Tag,1,3))

    ConsoleWrite("Remove_APE: " & $FileName & @CRLF)
    ;MsgBox(0,"ID3v1 Tag ID",$ID3v1ID)

    ;APE Header/Footer Laenge: 8(id) + 4(ver) + 4(len) + 4(num)+ 4(flags) + 8(res) = 32
    If ($ID3v1ID == "TAG") Then ;ID3v1 gefunden?, EndOffs Setzen und davor APE suchen
    $EndOffs=128
    ConsoleWrite(" ID3V1 Tags wurden erkannt (bleiben erhalten)" & @CRLF)
    Else
    $ID3v1Tag=""
    EndIf
    FileSetPos($hfile,-$EndOffs-32,2)

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

    Local $APEFooter = FileRead($hfile,32)
    Local $APEID = BinaryToString(BinaryMid($APEFooter,1,8)) ;APETAGEX
    If ($APEID == "APETAGEX") Then
    Local $APEVer=Number(BinaryMid($APEFooter,9,4)) ;1000 oder 2000 (dez)
    Local $APELen=Number(BinaryMid($APEFooter,13,4));Laenge inkl Footer (bei APEV2: Laenge ohne Header)
    ;Local $APENumTags=Number(BinaryMid($APEFooter,17,4))
    If $APEVer>=2000 Then
    FileSetPos($hfile,-$EndOffs-$APELen-32,2)
    Local $APEHeader = FileRead($hfile,32)

    ;Man könnte noch auf TagFlag Bit 29 pruefen (1=Header, 0=Footer)
    ;Machichabbernich
    If ($APEID == "APETAGEX") Then
    $APELen=$APELen+32
    ConsoleWrite(" APE-Tags (v2) werden entfernt." & @CRLF)
    Else
    ConsoleWrite(" APE-Tags (v2 ohne Header) werden entfernt." & @CRLF)
    ;(Lt. Wikipedia ist der Header auch bei v2 optional, daher kein Fehler)
    ;$APELen=0
    ;ConsoleWrite("Fehler: APEV2 Footer ohne Header");Alternativ: ConsoleWriteError
    EndIf
    Else
    ConsoleWrite(" APE-Tags (v1) werden entfernt." & @CRLF)
    EndIf
    FileClose($hfile)

    If ($APELen>0) Then
    ;Datei verkuerzen
    TruncateFile($FileName,FileGetSize($FileName)-$EndOffs-$APELen)

    ;ID3v1 wieder anhaengen
    If BinaryLen($ID3V1Tag)>0 Then
    $hfile = FileOpen($Filename,17)
    ;FileSetPos($hfile,0,2)
    FileWrite($hfile,$ID3V1Tag)
    FileClose($hfile)
    EndIf
    EndIf
    Else
    ConsoleWrite(" Keine APE Tags in Datei" & @CRLF)
    FileClose($hfile)
    EndIf
    EndFunc

    Func TruncateFile($Filename,$NewLength)
    Local $hFile = _WinAPI_CreateFile($Filename, 2, 4)
    _WinAPI_SetFilePointer($hFile, $NewLength)
    _WinAPI_SetEndOfFile($hFile)
    _WinAPI_CloseHandle($hFile)
    EndFunc

    [/autoit]
  • Telnet (busybox/linux) Dateimanager

    • AutoFlip
    • 17. Oktober 2011 um 22:53

    Hallo Cheater Dieter,
    danke für den Hinweis. Schön auch zu hören, daß bei Dir das Script gut läuft.

    In diesem Fall kann das "$pwd=" vor dem Kommando in Zeile 408 sogar entfernt werden, da die aufgerufene Fkt das "working directory" direkt in ein Control schreibt. "pwd" heisst in diesem Fall nämlich das Kommando das das aktuelle Verzeichnis abfragt (Print Working Directory).

    Ich habe das hier lokal geändert, werde das script aber erst zur nächsten "Version" in obigem Dateianhang aktualisieren.

  • Software via Telnet installieren

    • AutoFlip
    • 17. Oktober 2011 um 11:37

    Ich habe derweil noch meinen Post zum Telnet-Dateimanager aktualisiert. Siehe hier:
    Telnet (busybox/linux) Dateimanager

    Das Ding enthält u.a. auch einen Telnet-Client. Der Login erfolgt automatisiert und danach kann man (auch) den Inhalt eines Eingabefeldes per Knopfdruck an das Gegenüber senden.

    Ausserdem setzt es sich beim Login mit den IACs auseinander mit dem die Telnet-Kontrahenten ihre "Capabilities" austauschen.

    Da das Tool noch etwas mehr macht, müßtest Du Dir die benötigten Teile allerdings herauspicken bzw. abschauen.

  • Telnet (busybox/linux) Dateimanager

    • AutoFlip
    • 17. Oktober 2011 um 11:29

    Update auf Version 0.3.

    Neuerungen:

    • Verzeichnis-Listings sollten nun hoffentlich auch bei einem Linux ohne busybox erkannt werden
    • Telnet Login-Teil bezüglich Kompatibilität etwas überarbeitet. Insbesondere bzgl. IAC Codes
    • Logins sollten nun auch klappen, wenn das Passwort ohne Benutzername angegeben wird
    • Als Kennwort darf nun auch "*" angegeben werden, dann wird das Kennwort bei jedem Login interaktiv abgefragt

    Der Code ist nur minimal getestet. Fehler sind also immer möglich. :D

  • Software via Telnet installieren

    • AutoFlip
    • 15. Oktober 2011 um 23:04

    Vielleicht findest Du ja auch hilfreiches in meinem Telnet-Dateimanager (auch wenn die Directory-Fkt mehr für busybox-basierte Systeme gedacht ist).
    Siehe hier:
    Telnet (busybox) Dateimanager

  • DeskStream 2 Release Candidate 1.8

    • AutoFlip
    • 14. Oktober 2011 um 15:31

    "UDP Hole Punching" benötigt auch einen Server in der Mitte, nur läuft der Verkehr dann nach Verbindungsaufbau direkt zwischen A und B.

  • DeskStream 2 Release Candidate 1.8

    • AutoFlip
    • 14. Oktober 2011 um 09:13

    Natürlich gibt es noch andere Fernwartungstools, die entweder mit Proxies/Repeatern arbeiten (so daß beide Seiten NAT nutzen können) oder zumindest deren Serverkomponente aktiv Verbindung zum Fernwarter sucht und daher auf Serverseite kein Portmapping benötigt.
    "Teamviewer" ist da recht bekannt, privat kostenlos nutzbar, beruflich so zwischen 500,- und 1000,-
    Heise bietet eine vnc-basierte Lösung an: http://www.heise.de/netze/tools/fernwartung
    Ich verwende ChunkVNC, welches mit einem Repeater/Proxy arbeitet: http://www.chunkvnc.com

    (sorry für das Off-Topic)

  • progandy hat Geburtstag!

    • AutoFlip
    • 11. Oktober 2011 um 17:18

    Blackjack!...

    Nach 17+4 ist es bis zum nächsten "magischen Alter" 42 (=21x2) ja noch etwas hin.

    Herzlichen Glückwunsch ProgAndy!

  • PLZ - App

    • AutoFlip
    • 11. Oktober 2011 um 09:02

    Wenn man nur für die Feiertage abhebt (man z.B. den nächsten "Werktag" für ein Versand Zustelldatum sucht) ist es in diesem Fall kein Problem da HH und SH ja in Feiertagen identisch ist. Man kann unter der Postleitzahl (Marschbahndamm) auch gut Fahrradfahren ;)

    In anderen Fällen muss man sich ggf. anders behelfen und "auf die Straße gehen". Evtl helfen dann
    http://opengeodb.giswiki.org/wiki/OpenGeoDB oder Openstreemaps weiter.

  • PLZ - App

    • AutoFlip
    • 10. Oktober 2011 um 15:49

    Nicht schlecht.

    Auch sinnvoll, wenn man mal die Feiertage für eine Versandanschrift braucht ;)

    Spannend auch, daß einige Postleitzahlen (z.B. 21039) in mehreren Bundesländern präsent sind. Aber was schert die Post die Landesgrenze.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™