Hilfe bei Dauerbeschuss

  • Hallo an alle,
    wie bekomme ich es hin, Das Autoit im Intervall (mithilfe von Sleep und while)
    nach Datei1 und Datei2 auf dem Server sucht und diese wenn vorhanden runterläd und nur 1x wieder gibt?
    - ist Datei1.exe auf dem Server wird geladen und immerwieder gestartet
    - ist dazu Datei2.exe auf dem Server bzw nur diese, passiert garnix.

    könnt Ihr mir helfen? Wo liegt mein Fehler?

    [autoit]

    #RequireAdmin
    #include <FTPEx.au3>
    #include <Array.au3>
    #include <misc.au3>
    #include <FTPEx.au3>
    Global $server = "www4.subdomain.com"
    Global $username = "user1234567"
    Global $pass = "ABCdef"
    while 1
    Sleep(300000)
    $Open = _FTP_Open("Autoit")
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    _FTP_FileGetSize($Conn, "/Datei1.exe")
    If not @error Then
    InetGet("ftp://user1234567:ABCdef@www4.subdomain.com/Datei1.exe",@DesktopDir&"\Datei1.exe",1,0)
    EndIf
    if FileExists( @DesktopDir&"\Datei1.exe")then
    Run(@DesktopDir&"\Datei1.exe")
    EndIf
    _FTP_FileGetSize($Conn, "\Datei2.exe")
    If not @error Then
    InetGet("ftp://user1234567:ABCdef@www4.subdomain.com/Datei2.exe",@DesktopDir&"\Datei2.exe",1,0)
    EndIf
    if FileExists( @DesktopDir&"\Datei2.exe")then
    Run(@DesktopDir&"\Datei2.exe")
    EndIf
    $Ftpc = _FTP_Close($Open)
    WEnd

    [/autoit]

    2 Mal editiert, zuletzt von AsiX-5 (11. August 2011 um 09:49)

  • Ist ja klar, dass sie immer wieder gestartet wird, da ja immer sagst:

    [autoit]

    if FileExists( @DesktopDir&"\Datei1.exe")then
    Run(@DesktopDir&"\Datei1.exe")
    EndIf

    [/autoit]

    Und so lange sie also nicht auf dem Desktop löscht wird sie durch die while immer und immer wieder gestartet.

    Und deine Datei2.exe passiert nichts weil in _FTP_FileGetSize den slash falschrum hast.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke DIr für Deine Hilfe,
    ok, das hab ich verstanden aber wie kann ich es anders schreiben?

    wenn ich

    [autoit]

    if FileExists( @DesktopDir&"\Datei1.exe")then

    [/autoit]

    und

    [autoit]

    endif

    [/autoit]

    weglasse habe ich das selbe Problem des Wiederholens

  • Das Wiederholen kommt weil du immer wieder Run ausführst. Wenn du sagst das es nur einmal machen soll würde ich es downloaden lassen, gucken ob der DL problemlos abgelaufen ist und wenn ja dann soll die Datei geöffnet werden. Dann müsstest du den Download aber auch nur einmal machen, da ich nicht genau verstehe wieso du es die ganze Zeit downloadest.

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Erklär einfach mal was dein Ziel des ganzen sein soll. Dann kann man dir auch klarer helfen.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Sinn ist, das Programm warten zu lassen bis Datei1 oder/und Datei2 auf dem Server vorhanden ist, deswegen hatte ich dies in eine While-schleife gesetzt.

    wenn Datei1 oder/und Datei2 vorhanden sind, soll es diese 1x Downloaden und 1x ausführen auch, wenn diese Dateien weiterhin auf dem Server bleiben...


    Zitat: "und wenn ja dann soll die Datei geöffnet werden"
    tut man dieses nicht mit dem Befehl "Run"?
    hätte nicht gedacht das ich soooweit daneben liege:-P

  • Dann geh einfach aus dem While Loop raus mit ExitLoop, damit beendest du das öffnen. (Ja Run, du hast es immer wieder aufgerufen weil die Datei ja immer auf dem Speicherort bleibt wenn du sie nicht löschst.)

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake

  • Verstehe zwar nach wie vor den Sinn der Sache nicht, aber vielleicht meinst das ja so:

    Spoiler anzeigen
    [autoit]

    #include <FTPEx.au3>
    #RequireAdmin
    Global $server = "www4.subdomain.com"
    Global $username = "user1234567"
    Global $pass = "ABCdef"
    While 1
    Sleep(300000)

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

    If Not FileExists(@DesktopDir & "\Datei1.exe") Then
    _download("Datei1.exe")
    EndIf

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

    If Not FileExists(@DesktopDir & "\Datei2.exe") Then
    _download("Datei2.exe")
    EndIf
    WEnd

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

    Func _download($name)
    $Open = _FTP_Open("Autoit")
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    _FTP_FileGetSize($Conn, "/" & $name)
    If Not @error Then
    $hDownload = InetGet("ftp://user1234567:ABCdef@www4.subdomain.com/Datei1.exe", @DesktopDir & "\" & $name, 1, 0)
    Do
    Sleep(250)
    Until InetGetInfo($hDownload, 2)
    Run(@DesktopDir & "\" & $name)
    EndIf
    _FTP_Close($Open)
    EndFunc

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke Dir habe es mir zwar noch etwas geändert aber der Funke ist übergesprungen;-)

    Anstatt zu Handeln, wenn datein nicht auf meinem PC vorhanden ist,
    war ich zu sehr versteift darauf, zu warten bis jene auf dem Server liegen

    Sinn: ein Kupel hat einen Server, und ich warte auf 2 Bestimmte Dateien, die ich ausführen möchte, da er mir aber nicht mitteilen kann, wann genau die Dateien oben sind,
    da dies über einen Dritten läuft habe ich mir Gedacht, mach ich doch sowas gleich mal zum Üben für AutoIt.