Für die wohl immer wiederkehrende Frage nach einem Login-Skript hier die Lösung:
1) $iMode = 0
die Funktion versucht den Passwort- und Benutzer-Input selbst zu ermitteln, füllt diese aus und sendet das Formular ab.
(gibt es zwar schon in tausendfacher Ausführung als GreaseMonkey-Script oder AddOn, aber was soll's )
Rückgabe 1/0
2) $iMode = 1
Das gleiche wie in Mode 0, nur daß hier eine fertige Login-Funktion zurückgegeben wird z.B für AutoIt.de:
Spoiler anzeigen
Func _FFLogin($sUserName, $sPassWord) ; generated with _FF_AutoLogin, by Stilgar
_FFOpenURL('http://autoit.de/index.php?form=UserLogin')
If @error Then Return 0
_FFSetValueByName('loginPassword', $sPassWord)
If @error Then Return 0
_FFSetValueByName('loginUsername', $sUserName)
If @error Then Return 0
_FFDispatchKeyEvent("content.document.getElementsByName('loginPassword')[0]", 13)
If @error Then Return 0
_FFLoadWait()
If @error Then Return 0
Sleep(500)
Return _FFSearch('erfolgreich angemeldet')
EndFunc ;==> _FFLogin
Beispielaufruf:
Spoiler anzeigen
#region Includes
#include <_FF_AutoLogin.au3>
#endregion Includes
_FFConnect()
[/autoit] [autoit][/autoit] [autoit]_FF_AutoLogin("BenutzerName", "Passwort", "http://autoit.de/index.php?form=UserLogin", "erfolgreich angemeldet")
[/autoit]
; das wars ...
zur Funktionsweise:
* das Formular mit einem input type='password' wird ermittelt
* das Passwort wird dort eingetragen
* im Text-Input davor wird der Benutzername eingetragen
* das Formular wird abgesendet
( sollte eine Absende-Methode nicht funktionieren, wird die nächste ausprobiert, in der Reihenfolge:
keypress
click
submit )
* Statusmeldung der Seite überprüfen, ob das Einloggen erfolgreich war.
* Rückgabe je nach Mode: 1 = Erfolgreich eingeloggt, oder Einlog-Funktion bzw. 0 bei Fehler
Vorlagen für verschiedene Seiten:
Spoiler anzeigen
_FF_AutoLogin($sUserName, $sPassword, "gmx.de", "herzlich willkommen")
_FF_AutoLogin($sUserName, $sPassword,"web.de/fm/" , "Logout")
_FF_AutoLogin($sUserName, $sPassword, "www.autoitscript.com/forum/index.php?app=core&module=global§ion=login", "login was successful")
_FF_AutoLogin/$sUserName, $sPassword, "autoit.de/index.php?form=UserLogin", "erfolgreich angemeldet")
_FF_AutoLogin($sUserName, $sPassword, "www.autoitscript.fr/", "maintenant connect")
falls es irgendwo nicht funktionieren sollte, bitte melden!
Update V4.0:
- auf die FF.au3 V0.6 "vorbereitet"
Grüße
Stilgar