Hallo!
Stilgar hat's für den Firefox gemacht ( Web-Seiten-Auto-Login Funktion und Generator für Login-Funktionen(V3.0) ), jetzt gibt es sowas auch für den Internet-Explorer.
Spoiler anzeigen
#include <IE.au3>
[/autoit] [autoit][/autoit] [autoit]$Url = 'schueler.cc'
$User = 'user'
$Pwd = 'pwd'
$test = _IEAutoLogin($Url, $User, $Pwd)
[/autoit] [autoit][/autoit] [autoit]Func _IEAutoLogin($sUrl, $sUsername, $sPwd)
;funkey 09.09.09
$oIE = _IECreate($sUrl)
_IEErrorNotify(False)
_IEErrorHandlerRegister()
$oForms = _IEFormGetCollection($oIE)
If @error Then
Return SetError(1, _IEErrorHandlerDeRegister(), $oIE) ;'no forms --> no login'
Else
$Index = 0
For $oForm In $oForms
$oFormElements = _IEFormElementGetCollection($oForm)
If IsObj($oFormElements) Then
$IndexElement = 0
For $oElement In $oFormElements
If $oElement.Type = 'password' Then
$oPwd = _IEFormElementGetObjByName($oForm, $oElement.Name)
_IEFormElementSetValue($oPwd, $sPwd)
For $i = $IndexElement - 1 To 0 Step -1
$oUser = _IEFormElementGetCollection($oForm, $i)
If $oUser.Type = 'text' Then
_IEFormElementSetValue($oUser, $sUsername)
ExitLoop
EndIf
Next
If $oForm.action <> "0" And Not StringInStr($oForm.action, '.php') Then ;submit
_IEFormSubmit($oForm, 0)
_IELoadWait($oIE)
Else ;click
For $i = $IndexElement + 1 To $IndexElement + 10 ;check the next 10 elements
$oButton = _IEFormElementGetCollection($oForm, $i)
If $oButton.Type = 'submit' Then
_IEAction($oButton, "click")
ExitLoop
EndIf
Next
EndIf
Return SetExtended(_IEErrorHandlerDeRegister(), $oIE)
EndIf
$IndexElement += 1
Next
EndIf
$Index += 1
Next
EndIf
Return SetError(2, _IEErrorHandlerDeRegister(), $oIE) ;no password-field found
EndFunc ;==>_IEAutoLogin
Funktionsweise: Sucht das erste Passwort-Eingabefeld, das gefunden werden kann, schreibt das Passwort dort hinein, danach wird einfach in das Feld davor der Benutzername eingetragen und die Form bestätigt.
Ich hätte gerne Rückmeldungen über Seiten, auf denen es nicht funktioniert (die gibt es sicher).
Viel Spaß damit!
Edit: Kleine Verbesserungen im Errorhandling
Edit: Die Funktion ist jetzt universeller