FTP auslesen

  • sooo

    hier mal ne frage die ich nich hinbekomm...

    Ich muss einen Ordnernamen von einem FTP server in die zwischenablage bekommen... dies hab ich bisher so gemacht:
    hier fragt er den ordnernamen ab und die 5. datei im ordner von oben...

    [autoit]

    Func _getall ()
    ;PFAD ÄNDERN FÜR SIXTENN !!!
    ShellExecute("WinSCP.exe", "", "C:\Program Files (x86)\WinSCP") ;D:\Programme\WinSCP
    WinWait("WinSCP Anmeldung")
    WinActivate("WinSCP Anmeldung")
    Send("{DOWN}")
    Send("{ENTER}")
    ;WinWait("zensiert - WinSCP")
    ;WinActivate("zensiert - WinSCP")
    Sleep(3000)
    Send("ht")
    Sleep(400)
    Send("{ENTER}")
    Sleep(400)
    Send("d")
    Sleep(400)
    Send("{ENTER}")
    Sleep(400)
    Send ("{DOWN 2}")
    Sleep(400)
    Send("^+c")
    sleep (400)
    send ("!{F4}")
    $relname = ClipGet ()
    _abfragebox ("Abfragebox")
    sleep (400)
    send ("!{F4}")
    $rarname = ClipGet ()
    EndFunc

    [/autoit]

    wie kann ich das besser machen? wie geht sowas schneller?

    hoffe da hat jemand was nützliches für mich :)

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • ich kenne das Programm leider nicht, trotzdem denke ich mal das du mit den "control" Befehlen (z.B. controlgettext)
    etwas anfangen kannst um die Informationen auszulesen und dann per Clipput() die Zwischenablage füllen kannst
    wenn du dann noch einen pixelchecksum() an die richtigen Stellen einfügst kannst du die sleep Ungenauigkeiten (falls dein PC mal langsamer arbeiten sollte)
    überbrücken!
    PS: für

    [autoit]


    send("!{F4}")

    [/autoit]


    kannste auch einfach Winclose() nehmen ^^
    ich hoffe ich konnte dir helfen, obwohl ich (wie gesagt) das Programm selber nicht habe...

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • ja es geht ja darum das das programm kompatibel auf mehreren PCs läuft...

    DH. es muss gar nicht dieses WinSCP sein sondern hauptsache ich hab den ordnernamen und so... also kann auch gerne über befehle in Autoit gehen...


    und pixelchecksum is i wie nicht das beste denn das fenster ist nicht immer in der gleichen stelle geschweige denn es tut sich nicht immer was in 90 % des bildschirms...

    also.. gibt es da was besseres als es so zu machen?

    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • mag mir keiner helfen?
    Der Ordner befindet sich immer ineinem bestimmten ordner an 2. stelle...

    muss nur dahin und den namen kopieren....

    MFG: BLacky911

    Kleiner AutoIt Lehrling :)

  • Mit der FTP_Ex.au3, die Prog@ndy um einige Funktionen erweitert hat, ist es einfach möglich:

    [autoit]

    #include <FTP_Ex.au3>

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

    $server = 'ftp.server'
    $username = 'ftpuser'
    $pass = 'ftppass'

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

    $sSub = 'Test2' ; Unterordner in dem gelistet werden soll
    $iIndex = 2 ; welche Ordner-Nr. soll im Unterordner gezeigt werden

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

    $hOpen = _FTPOpen('FTPCtrl')
    $hConn = _FTPConnect($hOpen, $server, $username, $pass)
    _FtpSetCurrentDir($hConn,$sSub) ; in den betreffenden Unterordner wechseln
    $aDirs = _FTPFilesListToArray($hConn,1) ; nur die darin befindlichen Ordner in ein Array speichern

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

    If $aDirs[0] >= $iIndex Then ; wenn genug Unterordner zurückgeliefert wurden
    Msgbox(0,"","Der " & $iIndex & ". Ordner im Unterordner '" & $sSub & "' lautet : " & @CRLF & @CRLF & $aDirs[$iIndex])
    EndIf

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

    _FTPClose($hOpen)

    [/autoit]

    Hier noch die FTP_Ex.au3, da ich sie im Forum nicht finden konnte: autoit.de/wcf/attachment/4980/

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"