IE prob

  • hiho,

    ich möchte in ein script einbauen, dass es einen automatisch am proxy-server auf der arbeit anmeldet.
    hab dazu mal was aus nem alten script genommen und versucht anzupassen.

    bin mir auch fast sicher, dass es letzte woche geklappt hat. danach habe ich aber noch etwas verändert, seitdem geht es nicht mehr.
    aber wo ist der fehler? hab es soweit rekronsturiert wie ich meine dass es war, vllt mag mal jmd über den schnipsel gucken:

    [autoit]

    ;ie settings
    If $ieaxx = 1 Then
    $oIE = _IECreate ("https://proxy.de.blubb/?dest=http://www.google.de/",0,0,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    WinSetState ($oHWND, "", @SW_SHOW )
    $LocationURL = _IEPropertyget($oIE, "locationurl")
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oUsername = _IEFormElementGetObjByName ($oIE, "user")
    $oPassword = _IEFormElementGetObjByName ($oIE, "pass")
    ;MsgBox(0, "", $oForm & "\" & $oUsername & "\" & $oPassword)
    _IEFormElementSetValue ($oUsername, $ieuser)
    _IEFormElementSetValue ($oPassword, $iepw)
    _IEFormSubmit ($oForm)
    _IELoadWait($oIE)
    ;$LocationURL = _IEPropertyget($oIE, "locationurl")
    ;If $LocationURL <> "www.google.de" Then MsgBox(16, "Error", "You could not be login for automatic internet-acess," & @CRLF & "maybe you choose a wrong password or it was changed." & @CRLF & "Please enter your new password, you can use the CommandLine-Parameters.")
    Else
    EndIf

    [/autoit]

    im quelltext dazu steht:
    <label>User-ID <input maxLength="20" size="25" name="user" value="" class="myinput" /></label><br />
    <label>Passwort <input type=password maxLength="20" size="25" name="pass" class="myinput" /></label><br />

    Fehlermeldung ist diese:
    --> IE.au3 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidObjectType
    --> IE.au3 Error from function _IEFormElementGetObjByName, $_IEStatus_InvalidObjectType
    --> IE.au3 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
    --> IE.au3 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType

    der anfang der funktion klappt, dass prob tritt halt erst nach IEFormGetCollection auf .... wie man auch unschwer an der meldung erkennen kann *g*

  • der fehler war schon fast so simpel dass ich ihn beinahe übersehen hätte^^

    [autoit]

    ;ie settings
    If $ieaxx = 1 Then
    $oIE = _IECreate ("https://proxy.de.blubb/?dest=http://www.google.de/",0,0,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    WinSetState ($oHWND, "", @SW_SHOW )
    $LocationURL = _IEPropertyget($oIE, "locationurl")
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oUsername = _IEFormElementGetObjByName ($oForm, "user");anstatt $oIE kommt hier $oForm hin da sich diese funktion auf FormElemente bezieht!!!!
    $oPassword = _IEFormElementGetObjByName ($oForm, "pass");siehe oben
    ;MsgBox(0, "", $oForm & "\" & $oUsername & "\" & $oPassword)
    _IEFormElementSetValue ($oUsername, $ieuser);hier dürfte auf den ersten blcik kein fehle sein..
    _IEFormElementSetValue ($oPassword, $iepw);siehe oben
    _IEFormSubmit ($oForm);geht?!!
    _IELoadWait($oIE)
    ;$LocationURL = _IEPropertyget($oIE, "locationurl")
    ;If $LocationURL <> "www.google.de" Then MsgBox(16, "Error", "You could not be login for automatic internet-acess," & @CRLF & "maybe you choose a wrong password or it was changed." & @CRLF & "Please enter your new password, you can use the CommandLine-Parameters.")
    Else
    EndIf

    [/autoit]


    done snoozer

    PS:warum WinSetState ($oHWND, "", @SW_SHOW ) kannste doch bereits in der _IECreate Funktion festlegen???!!!!!!
    PSS:achte doch mal bitte auf ordentliche einrückung.....so werden quellcodes nur unübersichtlich....

  • Zitat

    Original von sc4ry
    diese funktion bringt mich noch an den rande des wahnsinns.
    mal funzt es, mal nicht ... ich versteh es nicht.

    aber mal eine frage dazu ... wenn es funktioniert, würde es auch gehen, wenn das fenster versteckt ist?


    welche funktion???????????
    haste vista druff??ie7? autoit version?

    snoozer

  • [autoit]

    ;ie settings
    If $ieaxx = 1 Then
    $oIE = _IECreate ("https://proxy.de.blubb/?dest=http://www.google.de/",0,0,1,0)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    WinSetState ($oHWND, "", @SW_SHOW )
    $LocationURL = _IEPropertyget($oIE, "locationurl")
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oUsername = _IEFormElementGetObjByName ($oForm, "user");anstatt $oIE kommt hier $oForm hin da sich diese funktion auf FormElemente bezieht!!!!
    $oPassword = _IEFormElementGetObjByName ($oForm, "pass");siehe oben
    ;MsgBox(0, "", $oForm & "\" & $oUsername & "\" & $oPassword)
    _IEFormElementSetValue ($oUsername, $ieuser);hier dürfte auf den ersten blcik kein fehle sein..
    _IEFormElementSetValue ($oPassword, $iepw);siehe oben
    _IEFormSubmit ($oForm);geht?!!
    _IELoadWait($oIE)
    ;$LocationURL = _IEPropertyget($oIE, "locationurl")
    ;If $LocationURL <> "www.google.de" Then MsgBox(16, "Error", "You could not be login for automatic internet-acess," & @CRLF & "maybe you choose a wrong password or it was changed." & @CRLF & "Please enter your new password, you can use the CommandLine-Parameters.")
    Else
    EndIf

    [/autoit]

    meinte das hier ...wenn ich da jetzt @SW_SHOW weglasse, würde es dann auch gehen, also die handles bei nem versteckten fenster auslesen und user/pw eingeben?

    xp, ie6, ka, wo seh ich das =)

  • Zitat

    Original von sc4ry
    meinte das hier ...wenn ich da jetzt @SW_SHOW weglasse, würde es dann auch gehen, also die handles bei nem versteckten fenster auslesen und user/pw eingeben?


    ja warum solte das nicht gehen?? ist ja nus der status des fensters(sichtbar/unsichtbar) die funktionen werden immer noch gleich ausgeführt...

    snoozer

  • Zitat

    Original von sc4ry
    weil es auf einmal nicht mehr funktioniert, obwohl ich nichts geändert habe (ausser den @sw_hide) ... ich versteh es irgendwie nicht.

    naja, dank dir, werd es am montag weiter testen =)


    mhh ganz komisch...ja teste erstmal weiter vll wars einfach ne falsche annahme...
    außerdem kannste doch beim_IeCreate schon sagen ob das fenster sichtbar oder unsichtbar sein soll....

    [autoit]

    $oIE = _IECreate ($sUrl,0,1) ;0,1 visible...0,0 invisible
    ;oder besser gesagt:
    $oIE = _IECreate ($sUrl,0,1);sichtbar (=> @SW_SHOW)
    $oIE = _IECreate ($sUrl,0,0);unsichtbar (=> @SW_HIDE)

    [/autoit]

    snoozer

    PS:falls es weiterhin nicht klappen sollte -> post!