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. Schellenursli

Beiträge von Schellenursli

  • Abbruch nach 33000 Sekunden

    • Schellenursli
    • 22. September 2014 um 06:43

    Problem gelöst !
    Es war definitiv das Problem mit den Files, welche ich nicht mehr geschlossen habe.
    Es läuft nun seit Tagen und tut genau was es soll !
    Vielen Dank für die Unterstützung !

  • Abbruch nach 33000 Sekunden

    • Schellenursli
    • 18. September 2014 um 06:40

    Es läuft seit 17 Stunden.... !

  • Abbruch nach 33000 Sekunden

    • Schellenursli
    • 17. September 2014 um 11:57

    ok, habe das File nun richtig geschlossen. Es ist schon so, dass mir einiges an Grundwissen im Zusammenhang mit Windows fehlt...

    Mit den Zeiten habe ich schon rumgespielt, jedoch keinen Zusammenhang mit der Zeit bis zum Fehlereintritt gefunden.

    Die lange Sleepzeit hat damit zu tun, dass ich das File nicht mehrmals pro Minute per FTP aktualiseren möchte.

  • Abbruch nach 33000 Sekunden

    • Schellenursli
    • 17. September 2014 um 11:30

    Danke den Experten für die raschen Vorschläge.

    Die Files schliesse ich nun nach dem Aufruf jeweils wieder.
    Aber... was ist richtiger:
    FileClose('GDIPlus_Img_StatusIST.jpg') oder FileClose ($op1) ?
    Oder spielt dies gar keine Rolle?


    Ich habe auch schon daran gedacht, das Programm immer wieder zu starten.
    Aber ich habe dies wieder verworfen, weil meine Tabelle dann immer wieder gelöscht würde. Und ich möchte am liebsten immer die letzten 100 Online-Zeiten sehen können.

    Beim Programmieren von Maschinensteuerungen musste ich mich nie mit Windows befassen. Ich gebe darum gerne zu, dass vieles in meinem Autoit Programm nicht wirklich professionell ist. VIeles habe ich zusammengesucht und dann versucht, ein lauffähiges Programm zu erzeugen.

    Also.. ich habe mal neu gestartet... nach spätestens 9h gebe ich Bescheid...

  • Abbruch nach 33000 Sekunden

    • Schellenursli
    • 17. September 2014 um 09:28

    Liebe Spezialisten,

    ich habe bereits einiges kleine Automatismen in Autoit programmiert. Bis jetzt habe ich immer irgendeine Lösung gefunden.
    Da ich sonst hauptsächlich Maschinensteuerungen in AWL (ähnlich Assembler) programmiere, habe ich doch einige Problemen mit Autoit und muss oftmals x Versuche machen, bis es dann funktioniert.

    Jetzt stehe ich aber definitiv am Berg.
    Ich habe ein Progrämmchen geschrieben, welches Bluestacks (Adroid Emulator) öffnet und durch Mausklicks einen Kontakt in Whatsapp anwählt.
    Dann wird ein Screenshoot des Bildschirmteils gemacht, wo die Meldung "online" steht, wenn der Kontakt sich in Whatsapp befindet.
    Ich vergleiche dann dauernd, ob sich in diesem Bildbereich etwas ändert. Falls ja, speichere ich die Zeit in einer Tabelle ab und übermittle die Tabelle per FTP, so dass ich sie von überall her abrufen kann.
    So habe ich in Listenform eine Übersicht, wann jemand online war. Und dies sogar, wenn dieser seinen Status unterdrückt.

    Jetzt das Problem:
    Es funktioniert alles! Aber... nur immer rund 32'000 - 33'000 Sekunden lang, dann stürzt das Programm mit einer Fehlermeldung ab.

    "Exit code: -1073741819 Time: 32269.693"

    32'000 sieht ja stark nach einem Überlauf einer Integerzahl aus. Ich habe schon versucht, die Schleifanzähler und Wartezeiten zu ändern mit der Absicht, einen Zusammenhang zu finden. Egal was ich machte: IMMER nach rund 9 Stunden tritt der Fehler auf.

    Das Problem ist auch, dass ich immer 9 Std warten muss um zu sehen, ob ich Erfolg habe oder nicht.
    Ich bin sehr dankbar, wenn ein Spezialist mal einen Blick auf meinen Code werfen könnte.

    Vielen Dank !


    Spoiler anzeigen


    [autoit]


    #include <ScreenCapture.au3>
    #include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>

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

    Global $s_ServerName = '80.74.148.149';IP-Adresse des FTP Servers
    Global $s_Username = "xxxxx"
    Global $s_Password = "yyyyy"
    Global $s_RemoteTabelle = "httpdocs/tabelle.txt"
    Global $s_LocalStatus
    Global $s_LocalAktiv
    Global $s_LocalTabelle
    Global $i_Passive = 0
    Global $l_InternetSession, $l_FTPSession, $errOpen, $errFTP
    Global $i, $j, $y
    Global $1, $2
    Global $op1, $op2
    Global $first=0
    global $array[100]

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

    Run("C:\Program Files (x86)\BlueStacks\HD-StartLauncher.exe")
    WinWait("BlueStacks","",10)
    sleep (30000)

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

    Do
    ;Fenster positionieren und mit Mausklicks die gewünschte Ansicht darstellen
    WinActivate ("BlueStacks")
    winmove("BlueStacks","",0,0)
    Beep (1000,50)
    ;Taste zurück anklicken
    MouseClick ("left",30,520,1)
    sleep (300)
    Beep (2000,50)
    MouseClick ("left",30,520,1)
    sleep (300)
    Beep (2000,50)
    MouseClick ("left",30,520,1)
    sleep (300)
    Beep (2000,50)
    MouseClick ("left",30,520,1)
    sleep (300)
    Beep (3000,20)
    ;Whatsapp anklicken
    MouseClick ("left",470,300,1)
    sleep (2000)
    Beep (3000,20)
    ;Chats+ anklicken
    MouseClick ("left",770,70,1)
    sleep (1000)
    Beep (3000,20)
    ;Jost anklicken
    MouseClick ("left",70,120,1)
    sleep (1000)
    Beep (3000,20)
    SLEEP (3000)

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

    if $first=0 Then; Referenzzbild abspeichern
    _ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Img_StatusRef.jpg", 53, 73,120, 88)
    $first=10
    endif
    $j=1
    do ;Schleife bis Fenster neu positioniert werden (x i )

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

    ;Screensoot machen und mit Referenzbild vergleichen
    $i=1
    do ;Schleife bis Files auf FTP aktualisiert werden
    _ScreenCapture_Capture(@MyDocumentsDir & "\GDIPlus_Img_StatusIST.jpg", 53, 73,120, 88) ; hier steht"Online, schreibt..." etc
    $op1 = FileOpen('GDIPlus_Img_StatusIST.jpg',16);aktuelles Bild
    $op2 = FileOpen('GDIPlus_Img_StatusRef.jpg',16);Referenzbild beim Start (INAKTIV)
    $1 = FileRead($op1)
    $2 = FileRead($op2)
    sleep (1000)
    ConsoleWrite(@crlf & " "& $j & " , "& $i)
    $i=$i+1
    until (($1 <> $2) or ($i>60)); Wiederholen bis ungleiche Bilder oder Timeout

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

    ;BILDVERGLEICH
    If $1 = $2 Then;INAKTIV
    $first=10 ;Anzahl Aktive in Folge bis neue Referenz gemacht wird
    Else;AKTIV
    $first=$first-1 ;
    For $y = UBound($array)-1 To 2 step -1 ;alle Zeilen eins nach unten schieben -> neuste Meldung zuoberst
    $array[$y]= $array[$y-1]
    Next
    $array[1]= @mday&"." & @mon &"." & @YEAR &" - " & @hour &":"& @min &":" & @sec;neuste Zeit zuoberst
    sleep (60000); Aktualisierung per FTP bei Aktivitätserkennung frühestens nach 1 Min
    EndIf

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

    ;Tabelle in Text abspeichern
    $array[0]= "Online-Zeiten Kröta" & @crlf & "Aktualisiert am: " & @mday&"." & @mon &"." & @YEAR &" - " & @hour &":"& @min ;&":" & @sec
    $string=("")
    For $y= 0 To UBound($array) - 1
    $string= $string & $array[$y] & @LF
    Next

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

    ;Text in File lokal abspeicerhn
    $hFile = FileOpen(@MyDocumentsDir & "\Liste.txt", 2)
    FileWrite($hFile, $string)
    FileClose($hFile)
    $s_LocalTabelle =(@MyDocumentsDir & "\Liste.txt")

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

    ;Bilder per FTP uploaden
    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    ConsoleWrite( @CRLF)
    If _FTP_FilePut($l_FTPSession, $s_LocalTabelle, $s_RemoteTabelle) Then
    ConsoleWrite("Upload Tabelle: erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Upload Tabelle: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzung
    $j=$j+1
    until $j>60
    Sleep (450);nach 45 Sekunden
    until not winexists("BlueStacks")

    [/autoit]

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™