bitte im anderen thread schreiben da ich ausversehen 2x auf erstellen geklickt hab.
#include <IE.au3>
Local $oIE, $oLoginForm
$oIE = _IECreate("www.freeaquazoo.de", 1)
#cs
; Hiermit würde das Formular ermittelt werden. Allerdings wird das Forumular an sich in keinster Weise angesprochen,
; da, wie unten notiert, die "name" Attrobute nicht gesetzt sind und deswegen alles über die Id gesteuert wird.
; Ermittelt Formular, das "index.php" als action gesetzt hat, da es 2 Formulare gibt und dieses keine Id und keinen Namen hat
For $oForm In $oIE.document.forms
If $oForm.action = "index.php" Then
ConsoleWrite("test" & @CRLF)
$oLoginForm = $oForm
ExitLoop
EndIf
Next
; Alternativ: Nehme das Input und anschließend dessen Formular
;~ $oLoginForm = $oIE.document.getElementById("logName").form
If Not IsObj($oLoginForm) Then Exit 1
#ce
With $oIE.document
; Nutze die Id der einzelnen Form-Elemente, da ebenfalls kein Name angegeben ist
.getElementById("logServer").value = 2 ; Werte 1-5 für "Welt 1"-"Welt 5"
.getElementById("logName").value = "LoginName"
.getElementById("logPass").value = "LoginPass"
; Klicke das Input mit "type=submit" statt "$oForm.submit", da es ein "onclick" Attribut hat
For $oInput In .getElementsByTagName("input")
If $oInput.type = "submit" Then $oInput.click
Next
EndWith
Erfüllst du denn diese Kriterien? Wenn nicht, dann solltest du dies nachholen. Einfach irgendeinen Code zu kopieren und dann ein paar Werte einzugeben wird dir nicht helfen, da es hier 1. nicht auf herkömmliche Weise funktioniert und du 2. keinerlei Lernfaktor dabei hast.Quote:
Ich hoffe, du kennst dich ein wenig mit Html aus und kennst die Bestandteile eines [Only registered and activated users can see links. Click Here To Register...]. Ebenso kennst du die einzelnen Eigenschaften wie "id" und "name" und kannst damit die einzelnen Elemente ansprechen.
#include <IE.au3>
Local $oIE, $oLoginForm
$oIE = _IECreate("www.freeaquazoo.de", 1)
; Elemente finden
Local $oServer, $oName, $oPass
$oServer = _IEGetObjById($oIE, "logServer")
$oName = _IEGetObjById($oIE, "logName")
$oPass = _IEGetObjById($oIE, "logPass")
; Werte setzen
_IEFormElementOptionSelect($oServer, 2) ; Werte 1-5 für "Welt 1"-"Welt 5"
_IEFormElementSetValue($oName, "Dies Ist Dein LoginName")
_IEFormElementSetValue($oPass, "Dies Ist Dein LoginPass")
; Schicke das Formular ab
; Dies ist nicht über eine _IE-Funktion realisierbar, da es diese nicht gibt
For $oInput In $oServer.form.getElementsByTagName("input")
If $oInput.type = "submit" Then _IEAction($oInput, "click")
Next
#cs
; Die andere Alternative
With $oIE.document
; Ermittle Form-Element über die Id des ersten Inputs
Local $oForm = .getElementById("logServer").form
; Nutze die Id der einzelnen Form-Elemente, da ebenfalls kein Name angegeben ist
.getElementById("logServer").value = 2 ; Werte 1-5 für "Welt 1"-"Welt 5"
.getElementById("logName").value = "LoginName"
.getElementById("logPass").value = "LoginPass"
; Klicke das Input mit "type=submit" statt "$oForm.submit", da es ein "onclick" Attribut hat
For $oInput In $oForm.getElementsByTagName("input")
If $oInput.type = "submit" Then $oInput.click
Next
EndWith
#ce
For $oInput In $oServer.form.getElementsByTagName("input")
If $oInput.type = "submit" Then _IEAction($oInput, "click")
Next
Natürlich fängt man dann auch gleich mit seinen TCP-Requests an, wenn man gerade dabei ist, die Funktionen des IE zu lernen -_-Quote:
das reicht allerdings auch m.E. aus ;)
wenn du noch Fragen dazu hast (wahrscheinlich tcprequest bezogen) dann stelle sie hier ;)