|
You last visited: Today at 03:33
Advertisement
[HELP]Login
Discussion on [HELP]Login within the AutoIt forum part of the Coders Den category.
12/29/2012, 16:45
|
#1
|
elite*gold: 22
Join Date: May 2011
Posts: 516
Received Thanks: 178
|
[HELP]Login
hallo,
ich wollte einen login für diese schreiben.
funktioniert aber irgendwie nicht^^
Code:
$IE = _IECREATEEMBEDDED()
$Bot = GUICreate("Form1", 800, 800)
GUICtrlCreateObj($IE, 0, 0, 800, 800)
GUISetState(@SW_SHOW)
_IENAVIGATE($IE,"www.skorpion-mt2.com/?s=usercp");https://www.skorpion-mt2.com/?s=usercp
_IELOADWAIT($IE)
$Loginform = _IEFORMGETOBJBYNAME($IE, "left_content")
$IDIn = _IEGetObjByName($IE, "userid")
$PWIn = _IEGetObjByName($IE, "userpass")
oder
Code:
$IE = _IECREATEEMBEDDED()
$Bot = GUICreate("Form1", 800, 800)
GUICtrlCreateObj($IE, 0, 0, 800, 800)
GUISetState(@SW_SHOW)
_IENAVIGATE($IE,"www.skorpion-mt2.com/?s=usercp");https://www.skorpion-mt2.com/?s=usercp
_IELOADWAIT($IE)
$Loginform = _IEFORMGETOBJBYNAME($IE, "left_content")
$IDIn = _IEGetObjById($IE, "text")
$PWIn = _IEGetObjById($IE, "passwort")
funktioniert beides nicht^^
ich hägen im moment bei diesem befehl
Code:
$IDIn = _IEGetObjById($IE, "text")
$PWIn = _IEGetObjByID($IE, "passwort")
da die id nicht in dem seitenquell text angegeben ist^^
hoffe jmd kann mir helfen
mfg
|
|
|
12/29/2012, 16:51
|
#2
|
elite*gold: 64
Join Date: May 2011
Posts: 1,228
Received Thanks: 847
|
Hier
Code:
#include <IE.au3>
#include <GUIConstants.au3>
$IE = _IECREATEEMBEDDED()
$Bot = GUICreate("AutoLogin", 800, 800)
GUICtrlCreateObj($IE, 0, 0, 800, 800)
_IENAVIGATE($IE,"www.skorpion-mt2.com/?s=usercp");https://www.skorpion-mt2.com/?s=usercp
_IELOADWAIT($IE)
GUISetState(@SW_SHOW)
$IDIn = _IEGetObjByName($IE, "userid")
$PWIn = _IEGetObjByName($IE, "userpass")
$Submit = _IEGetObjByName($IE , "submit")
_IEFormElementSetValue($IDIn , "ID")
_IEFormElementSetValue($PWin , "PW")
_IEAction($Submit , "click")
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
|
|
|
01/07/2013, 17:29
|
#3
|
elite*gold: 22
Join Date: May 2011
Posts: 516
Received Thanks: 178
|
danke funktioniert^^
noch eine frage^^
ich habe 2 buttons, diese sind vollkommen identisch bis auf die value
ich möcht beide nacheinander drücken:
Code:
<center><input class="vote1" type="submit" name="submit" value="Vote Seite 1"/></center>
Code:
<center><input class="vote1" type="submit" name="submit" value="Vote Seite 2" /></center>
ich habe schon den befehl _IEGetObjByValue ausprobiert den gibts aber anscheinend nicht^^
wie kann ich die buttons unterscheiden?
mfg
|
|
|
01/08/2013, 03:04
|
#4
|
elite*gold: 64
Join Date: May 2011
Posts: 1,228
Received Thanks: 847
|
So hier habe es endlich hinbekommen:
Code:
#include <IE.au3>
#include <GUIConstants.au3>
$IE = _IECREATEEMBEDDED()
$Bot = GUICreate("AutoLogin", 800, 800)
GUICtrlCreateObj($IE, 0, 0, 800, 800)
_IENAVIGATE($IE,"www.skorpion-mt2.com/?s=usercp");https://www.skorpion-mt2.com/?s=usercp
_IELOADWAIT($IE)
GUISetState(@SW_SHOW)
$IDIn = _IEGetObjByName($IE, "userid")
$PWIn = _IEGetObjByName($IE, "userpass")
$Submit = _IEGetObjByName($IE , "submit")
_IEFormElementSetValue($IDIn , "")
_IEFormElementSetValue($PWin , "")
_IEAction($Submit , "click")
_IENavigate($IE , "http://www.skorpion-mt2.com/index.php?s=vote")
$colInputs = _IETagNameGetCollection($IE,"input") ; Get collection of input tags
$cols = @extended
$i = 3
For $oInputs In $colInputs
If $i = 3 Then
$i = 0
Else
$Names = _IEGetObjByName($IE , $oInputs.name)
$Names1 = _IEGetObjByName($IE , $oInputs.name , 1)
_IEAction($Names , "click")
_IEAction($Names1 , "click")
ExitLoop
EndIf
Next
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
|
|
|
01/08/2013, 13:22
|
#5
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
muss das ganze wirklich über den ie laufen?
viel schöner könnte man das ganze gleich komplett über tcp befehle lösen.
|
|
|
01/08/2013, 14:41
|
#6
|
elite*gold: 22
Join Date: May 2011
Posts: 516
Received Thanks: 178
|
Quote:
Originally Posted by lolkop
muss das ganze wirklich über den ie laufen?
viel schöner könnte man das ganze gleich komplett über tcp befehle lösen.
|
wie könnte das man über tcp lösen?
mfg
|
|
|
01/08/2013, 14:50
|
#7
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
einfach den traffic mitloggen, welcher über deinen browser gesendet/empfangen wird, und rekonstruieren.
codeaufbau:
Code:
TCPStartup()
$socket = TCPConnect(<adress>)
[Schleife]
TCPSend($socket, <anfrage>)
[Do]
$antwort = TCPRecv($socket, 1024)
[Until $antwort ist komplett]
[/Schleife]
TCPCloseSocket($socket)
TCPShutdown()
|
|
|
01/08/2013, 15:04
|
#8
|
elite*gold: 22
Join Date: May 2011
Posts: 516
Received Thanks: 178
|
Quote:
Originally Posted by lolkop
einfach den traffic mitloggen, welcher über deinen browser gesendet/empfangen wird, und rekonstruieren.
codeaufbau:
Code:
TCPStartup()
$socket = TCPConnect(<adress>)
[Schleife]
TCPSend($socket, <anfrage>)
[Do]
$antwort = TCPRecv($socket, 1024)
[Until $antwort ist komplett]
[/Schleife]
TCPCloseSocket($socket)
TCPShutdown()
|
sry aber ich habe grad keinen plan was dieser code tut/mir mitteilen will
ich hab mich mit tcp noch nicht beschäftig & bin ein absolurter newbie in autoit
mfg
|
|
|
01/08/2013, 15:08
|
#9
|
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
|
Quote:
Originally Posted by EngelEatos
wie könnte das man über tcp lösen?
mfg
|
|
|
|
01/08/2013, 16:20
|
#10
|
elite*gold: 22
Join Date: May 2011
Posts: 516
Received Thanks: 178
|
Code:
#include "WebTcp.au3"
_WebTcp_Startup()
$oWebTcp = _WebTcp_Create(False)
$sBenutzername = InputBox("AutoLogin", "Bitte gib deinen Benutzernamen ein:")
$sPasswort = InputBox("AutoLogin ", "Bitte gib dein Passwort ein:", "", "*")
$oWebTcp.Navigate("http://www.skorpion-mt2.com/index.php?s=usercp", "userid=" & $sBenutzername & "&userpass=" & $sPasswort & "&submit=Login")
If StringInStr($oWebTcp.Body, "ausloggen") Then
MsgBox(64, "Info", "Login erfolgreich!")
Else
MsgBox(48, "Info", "Login fehlgeschlagen!")
EndIf
$oWebTcp.Navigate("http://www.skorpion-mt2.com/?s=vote", "submit=Vote+Seite+1")
If StringInStr($oWebTcp.Body, "Voten") Then
MsgBox(64, "Info", "Vote erfolgreich!")
Else
MsgBox(48, "Info", "Vote fehlgeschlagen!")
EndIf
$oWebTcp.Navigate("http://www.skorpion-mt2.com/?s=vote")
If StringInStr($oWebTcp.Body, "Mit deiner Ip wurde bereits mit einem anderem Account gevotet.") Then
MsgBox(64, "Info", "Du kannst erst wieder in 8 h voten")
EndIf
$oWebTcp.Navigate("http://www.skorpion-mt2.com/?s=vote", "submit=Vote+Seite+2")
If StringInStr($oWebTcp.Body, "Voten") Then
MsgBox(64, "Info", "Vote2 erfolgreich!")
Else
MsgBox(48, "Info", "Vote2 fehlgeschlagen!")
EndIf
_WebTcp_Shutdown()
ich habe es jetz geschafft, dass er sich einloggt & votet, aber er votet auch wenn man ein falsches pw/id eingibt, Wie kann man das einstellen, dass er abbrechen soll wenn man was falsches eingibt?
mfg
|
|
|
01/08/2013, 18:37
|
#11
|
elite*gold: 574
Join Date: Nov 2010
Posts: 2,498
Received Thanks: 726
|
Quote:
Originally Posted by EngelEatos
ich habe es jetz geschafft, dass er sich einloggt & votet, aber er votet auch wenn man ein falsches pw/id eingibt, Wie kann man das einstellen, dass er abbrechen soll wenn man was falsches eingibt?
mfg
|
|
|
|
01/08/2013, 19:03
|
#12
|
elite*gold: 64
Join Date: May 2011
Posts: 1,228
Received Thanks: 847
|
Quote:
Originally Posted by Njahs
|
Oder eine Func erstellen und Return machen / Error setzen.
Exit beendet das Programm ja komplett.(Außerhalb es soll so sein)
|
|
|
01/08/2013, 19:49
|
#13
|
elite*gold: 528
Join Date: Jan 2012
Posts: 2,127
Received Thanks: 2,404
|
Quote:
Originally Posted by EngelEatos
ich habe es jetz geschafft, dass er sich einloggt & votet, aber er votet auch wenn man ein falsches pw/id eingibt, Wie kann man das einstellen, dass er abbrechen soll wenn man was falsches eingibt?
mfg
|
Hier mal etwas Pseudocode
Code:
;Gui-Loop
Case $ButtonStart
_Main()
If @error Then
Switch @error
Case 1
MsgBox(48, 'Fehler', 'Aktion 1 fehlgeschlagen')
Case 2
MsgBox(48, 'Fehler', 'Aktion 2 fehlgeschlagen')
Case 3
MsgBox(48, 'Fehler', 'Aktion 3 fehlgeschlagen')
EndSwitch
EndIf
;/Gui-Loop
;### Tidy Error -> case Not closed before "Func" statement.
;### Tidy Error -> "func" cannot be inside any IF/Do/While/For/Case/Func statement.
Func _Main()
;Aktion 1
If StringInStr(...) Then
;Falsch Anmelden und die Fehlermeldung raussuchen, wenn diese im Quellcode enthalten ist, dann ist die Anmeldung fehlgeschlagen // Richtig anmelden und dann einen String heraussuchen, bei epvp wäre das z.B. "Willkommen,"
Return SetError(1, 0, 0) ;Setzt @error auf 1 und beendet die Funktion
EndIf
;Aktion 2
;Fehlerprüfung, ... If .... Then
;Return SetError(2,0,0)
;EndIf
;Aktion 3
;Fehlerprüfung If ... Then
;Return Seterror(3,0,0)
;Endif
EndFunc ;==>_Main
;### Tidy Error -> case is never closed in your script.
MfG
|
|
|
All times are GMT +2. The time now is 03:33.
|
|