verschiedene Probleme mit meinen Script

  • also es funktioniert, aber nicht ganz wie es soll, zb die reihenfolge,aber erstmal grobe funktionsweise

    Script öffnet ie, dann wird eine Zeile einer Datei einlesen und daraus ein link gemacht, dann wird überprüft ob mein eingeloggt ist(ist aber glaube ich verbesserungswürdig)


    dann soll es zu den erzeugten Link navigieren und Eintrag senden das ist kein Problem.

    nun sollten noch fehlerausgaben erzeugt werden dies habe ich zt mit func und zt anders gemacht :rofl:

    nuja,

    wenn dann _filereadline -1 ausgibt soll auch ne func ausgeführt werden wo man dann 30 sekunden zeit haben soll ESC zu drücken, ansonsten shutdown(weiß nicht wie ich das gescheit in mein vorhanden script bringe deshalb extern

    hier das hauptscript

    Spoiler anzeigen
    [autoit]


    #include <file.au3>
    #include <GUIConstants.au3>
    #include <Date.au3>
    #include <array.au3>
    #include <misc.au3>
    #include <ie.au3>
    #include <string.au3>
    #include <INet.au3>

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

    $jappylink = "http://www.jappy.de/user/"; Anfang des Links
    $jappylinkende = "/GB/neu";Ende des Links
    $datei1 = "C:\GBEintrag.txt";Enthält den Gb Eintrag
    $Freunde = "C:\liste.txt";Enthält den Pfad zu der verwendetet Freundesliste
    $datei2 = FileReadLine($Freunde);Ließt den Link zur Freundeliste ein
    $hdatei3 = FileOpen($datei2,0);Öffnet die Datei
    $sLogPath = "C:\Fehlerjappy.txt" ;Erstellt eine Logdatei zu Fehlern
    $Log = "C:\Logjappy.txt"

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

    If Not FileExists($datei1) Then
    MsgBox(0,"","Die Datei "&$datei1&" wurde nicht gefunden")
    exit

    ElseIf Not FileExists($Freunde) Then
    MsgBox(0,"","Die Datei "&$Freunde&" wurde nicht gefunden.")
    exit

    Else
    Dim $array
    _FileReadToArray($datei1, $array);Fügt den GB Eintrag in ein array ein
    If @error Then
    MsgBox(0,"FEHLER","Fehler beim einlesen der Datei")
    exit
    EndIf
    $text2 = _ArrayToString($array,@CR) ;Verwandelt den Array zu einen String zu weiteren Verarbeitung
    $text2 = StringTrimLeft ( $text2,2 ) ;schneidet beim text2 links 1 buchstaben weg

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

    If $array[0] > 0 And $array[1] <> "" Then
    $hDatei2 = FileOpen($datei2, 0)
    $Login = "www.jappy.de"
    $oIE = _IECreate($login, 0,1) ;0,1 visible...0,0 invisible
    _IELoadWait($oIE); wartet bis der ie vollständig gelandet hat

    ;--------------------------------------------------------------------------------hier beginnt der haupteil-------------------------------
    While $hDatei2
    $fertig = "Alle Namen abgearbeitet"
    $name = FileReadLine($Hdatei3)

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

    If @error = -1 Then call("ende");---------------------------------------------------------------------------------------------------------------------

    $Fehler4 = "Fehler bei Name" & $name

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

    $text = $jappylink&$name&$jappylinkende ;Füge Link Anfang , den eingelsesenen Namen und Link Ende zusammen.

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

    sleep(1000);Wartet 1Sekunde
    ;MsgBox(0, "Example", $text) ; diente nur der link Kontrolle

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

    $oHWND = _IEPropertyGet($oIE, "hwnd");bingt nichts wenn ie unsichtbar
    ;WinSetState($oHWND, "", @SW_MAXIMIZE);bingt nichts wenn ie unsichtbar


    ;------------------------ie fehler------------------------


    If WinActive("Aktivierung - Jappy.de - Microsoft Internet Explorer") Then
    $Fehler2 = "Du bist nicht eingelogt, du hast 20 Sekunden Zeit dich einzuloggen"
    MsgBox(0,"Fehler", $Fehler2)
    _FileWriteLog( $sLogPath, $fehler2 )
    Sleep(2000)
    EndIf
    If WinActive("Aktivierung - Jappy.de - Microsoft Internet Explorer") Then
    $Fehler22 = "Du hast dich leider immernoch nicht eingeloggt, das Script beendet sich jetzt, führe es erneut aus wenn du dich eingeloggt hast"
    _FileWriteLog($slogpath,$fehler22)
    exit
    EndIf
    if WinActive("Server nicht gefunden - Microsoft Internet Explorer") Then
    $Fehler3 = "Keine aktive Wlan oder Internet verbindung, überprüfe dies "
    MsgBox(0,"Fehler",$Fehler3&"Drücke auf ok wenn du das Problem behoben hast, wenn geschehen läuft das Programm weiter")
    _FileWriteLog( $sLogPath, $text &"<---->" $fehler3)
    endif

    ;----------------------------------------Hier wird Navigiert---------------------------
    _IENavigate($oie,$text)
    sleep(2000)
    ;--------------------------------------------------------------------------------------

    $fehler5 = "Fehler beim Form Index holen"


    $oForm = _IEFormGetCollection ($oIE, 0);Holt die Bereiche
    sleep(1000)
    If @error = 3 then Call("Index")


    $fehler6 = "Fehler beim finden des Texfeldes"
    $oQuery = _IEFormElementGetObjByName($oForm, "text");Findet das TExtfeld


    if @error = 7 then call("text")

    _IEFormElementSetValue ($oQuery, $text2);fügt text2 ein
    _IEFormSubmit ($oForm); Sendet den GB
    _FileWriteLog($log,$text);Erstellt eine Log zu den Links die abgearbeitet wurden
    If WinActive("Ein Fehler ist aufgetreten! - jappy.de - Microsoft Internet Explorer") Then
    $Fehler = "Das Profil ---->"&$text&"<----existiert eventuel nicht"
    ;MsgBox(0,"Fehler",$Fehler)
    _FileWriteLog( $sLogPath, $fehler )
    EndIf
    Sleep(2000); Warte 2 Sekunden dann schließe IE

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

    WEnd
    EndIf
    EndIf

    ;-------------------------------------------Wenn die letzte Zeile erreicht ist------------------------
    func ende()
    MsgBox(0,"Info", "Alle Namen abgearbitet")
    MsgBox(0, "Warnung", "Windows wird in 30 Sekunden heruntergefahren zum Abrechen 'ESC' drücken")
    _FileWriteLog($log,$fertig)
    run("aus.exe")
    sleep(5000)
    exit
    EndFunc

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

    ;-------------------fehler beim index holen--------------
    Func index()
    ;MsgBox(0,"Fehler", $fehler5)
    _FileWriteLog( $sLogPath, $fehler5)
    EndFunc

    ;----------------------fehler beim finden des textfeldes
    func text()
    ;MsgBox(0,"Fehler", $fehler6)
    _FileWriteLog( $sLogPath, $fehler6)
    EndFunc

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


    Script zum shutdown

    (hier aus dem Board)

    [autoit]


    HotKeySet("{ESC}", "Terminate")

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

    If _countDown("00:00:20") Then Shutdown(9) ; SS:MM:SS
    Func _countDown($countdown)
    $begin = TimerInit()

    Local $string = ""

    While 1
    $start = Round(TimerDiff($begin) / 1000)

    $countUp = StringFormat("%.02d" & ":" & "%.02d" & ":" & "%.02d", _
    Mod($start / 3600, 24), Mod(($start / 60), 60), Mod($start, 60))

    $sec = _DateDiff('s', "2006/01/01 " & $countUp, "2006/01/01 " & $countdown)
    If $sec = 0 Then Return 1

    $string = StringFormat("%.02d" & ":" & "%.02d" & ":" & "%.02d", _
    Mod($sec / 3600, 24), Mod(($sec / 60), 60), Mod($sec, 60))

    ToolTip($string)
    Sleep(100)
    WEnd
    EndFunc ;==>_countDown

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

    Func Terminate()
    Exit 0
    EndFunc

    [/autoit]

    nochmal zu der reihefolge, warum navigiert der erst und überprüft erst nacher ob mein eingelogt ist? im script ist diesaber genau andersrum

    und kann man die fehler die anhand des titels des ie erkannnt werden auch anders erkennen?


    grüße