IE Problem

  • Hallo,
    dies wird ein Login Skript, damit ich sofort beim PC start in Schueler.cc bin.
    Meine Funktion sieht wie folge aus:

    [autoit]

    Func _Login()
    $oIE = _IECreate ("www.schueler.cc", 0,1)
    $Email = _IEFormElementGetObjByName($oIE, "email")
    $Passwort = _IEFormElementGetObjByName($oIE, "passwort")
    _IEFormElementSetValue ($Email, GUICtrlRead($Input1))
    _IEFormElementSetValue ($Passwort, GUICtrlRead($Input2))
    EndFunc

    [/autoit]

    Jedoch bekomm ich den Error:
    --> IE.au3 V2.4-0 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidObjectType
    --> IE.au3 V2.4-0 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidObjectType
    --> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
    --> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType

    Dabei ist das eine Email Adresse und ein Passwort.

    Keine Ahnung warum :?:

    2 Mal editiert, zuletzt von PokerFace (27. September 2009 um 03:01)

  • Du musst erst das Formular herausfinden:
    _IEFormGetObjGByName
    also das was in <form action="BLABLA" method="post">
    Wenn kein Name angegeben ist musst du _IEFormGetCollection benutzen

    Die Rückgabe der Funktionen musst du für _IEFormElementGetObjByName benutzen
    Aus der Hilfe:

    [autoit]

    ; *******************************************************
    ; Example 1 - Get a reference to a specific form by name. In this case, submit a query
    ; to the Google search engine. Note that the names of the form and form
    ; elements can be found by viewing the page HTML source
    ; *******************************************************
    ;
    #include <IE.au3>
    $oIE = _IECreate ("http://www.google.com")
    $oForm = _IEFormGetObjByName ($oIE, "f")
    $oQuery = _IEFormElementGetObjByName ($oForm, "q")
    _IEFormElementSetValue ($oQuery, "AutoIt IE.au3")
    _IEFormSubmit ($oForm)

    [/autoit]

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

  • So geht es auch nicht:

    [autoit]

    Func _Download()
    $oIE = _IECreate ("www.schueler.cc", 0,1)
    $Email1 = _IEFormGetObjByName($oIE, "email")
    $Passwort1 = _IEFormGetObjByName($oIE, "passwort")
    $Email = _IEFormElementGetObjByName ($Email1, "email")
    $Passwort = _IEFormElementGetObjByName ($Passwort1, "passwort")
    _IEFormElementSetValue ($Email, GUICtrlRead($Input1))
    _IEFormElementSetValue ($Passwort, GUICtrlRead($Input2))
    EndFunc

    [/autoit]


    Schade.
    Ich habe den Quellcode mal angehängt..

  • klar geht das nicht ... gugg doch im Beispiel...
    Bei _IEFormGetObjByName musst du den name des Formulars angeben: <form name="blabla" usw...

    Ich denke mal es handelt sich um diesen Abschnitt:

    Spoiler anzeigen

    Da dieses Formular leider keinen Namen hat hast du nun sprichwörtlich die A****karte gezogen.
    Jetzt musst du mit _IEFormGetCollection die Formulare "auflisten" und dann dein Formular per index bestimmen. Wie das funktioniert steht ebenfalls in der Hilfe.

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D