Login in GUI ohne IE

  • Hallo.

    nachdem mir schon mehrere leute nicht helfen konnten, hier mal für alle das problem, das ich habe, bei dem ich feststecke!

    Code
    aus datenschutzgründen zensiert!

    "EDIT" "****ZENSIERT" "sessionID" "gads=ID" "USERNAME" und "PASSWORT" wurden selbstverständlich geändert ;)
    Nun kommt, was ich bereits habe, damit ihr es auch testen könnt!


    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <Inet2.au3>; _InetGetSourcePost von GTASpider included
    #include <UrlEncode.au3>; UrlEncode.au3 im englischen mainforum zu finden

    [/autoit][autoit][/autoit][autoit]

    $hGui = GUICreate("TEST", 650, 500)
    GUICtrlCreateTab(0, 0, 650, 485)
    GUISetState()
    GUICtrlCreateLabel("Name:", 10, 30)
    $User = GUICtrlCreateInput("", 60, 30, 80, 20)
    GUICtrlCreateLabel("Passwort:", 10, 55)
    $Pass = GUICtrlCreateInput("", 60, 55, 80, 20)
    $login1 = GUICtrlCreateButton("Login", 60, 80, 80, 20)

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(5)
    $msg = GUIGetMsg()
    Select
    Case $msg = $GUI_EVENT_CLOSE
    Exit
    Case $msg = $login1
    _Login(GUICtrlRead($User), GUICtrlRead($Pass))
    EndSelect
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _Login($User, $Pass)
    ;Global Const $Logindaten = "http://..."&"username="&$User&"&password="&$Pass&"&submitForm=Login"
    $page = "http://..."
    $encodedstring = "username="&$user&"&password="&$pass;&"&submitForm=Login"
    ;$encodedstring = $User&$Pass
    _UrlEncode ($encodedstring)
    $Logindaten = $page&$encodedstring
    TCPStartup()

    [/autoit][autoit][/autoit][autoit]

    $loginsource = _INetGetSourcePost("http://...", "1")
    _ArrayDisplay ($loginsource)
    If StringInStr($loginsource[0], "Der Benutzername und/oder das Passwort sind ung&uuml;ltig.") Then
    TrayTip("Eingabe falsch", "", 5, 2)
    ElseIf StringInStr($loginsource[0], 'Dein Penner') Then
    TrayTip("", "Erfolgreich eingeloggt!", 5, 1)
    Else
    TrayTip("Unbekannter Fehler", "!", 5, 3)
    EndIf
    EndFunc ;==>_Login

    [/autoit][autoit][/autoit][autoit][/autoit]

    Nun zu meiner problembeschreibung bzw fragen:
    1.was genau, muss alles encoded werden um einen korrekten login zu erzielen?
    2. Wie schaffe ich es das meine GUI auch das Cookie setzt, oder ist dies nicht nötig?
    3. Wie bekomme ich die SessionID in das Cookie
    4. Ist meine Art der Codierung "_UrlEncode" auch die richtige, die ich hier brauche?
    5. Gibt es vlt. eine einfachere/schnellere möglichkeit den login zu machen, allerdings ohne IE
    6. Was genau muss bei GTASpiders "_INetGetSourcePost("http://pennergame.de/overview/", "1")" - anstelle von "1" hin? - das dies der POST ist, der heruntergeladen werden soll hab ich gelesen, allerdings weiß ich nicht, wo dieser zu finden ist.
    7. Fehlt bei meiner Func _Login noch etwas oder ist etwas falsch?

    bei fragen, einfach fragen ;) wäre super wenn mir wer weiterhelfen könnte, da ich wirklich nicht mehr weiter weiß, da ich schon tage oder wochen am rumprobieren bin, und nichts funktioniert hat!

    greetz Max Sony

    Einmal editiert, zuletzt von MaxSony (4. März 2009 um 00:06)

  • Warum lässt du ein Programm dich nicht selbst einloggen?
    Vgl. das Beispiel aus der Hilfe zu _IEFormElementSetValue.

  • Warum lässt du ein Programm dich nicht selbst einloggen?
    Vgl. das Beispiel aus der Hilfe zu _IEFormElementSetValue.

    hm, funktioniert das nicht auch wieder mit IE?

    ich wollte das halt auf die art und weise machen wie ich oben beschrieben hab, da ja manche games etc. durch gameguard etc. protected sind, und das dann wie ich gelesen hab, nicht funktioniert.

    und wenn ich das jetzt hier nicht auf die reihe bekomme, dann schaff ich das woanders auch nicht!

    vlt. erbarmt sich ja noch jemand und findet heraus welcher der korrekte string in meinem programm ist.

    greetz max sony

  • Achso, das hab ich überlesen. Sry.

    Aber was willst du am Spiel denn ohne das Internet-Fenster ändern?

    Schau dir doch das Firefox-Automatisierungs-Projekt an ;)

  • Achso, das hab ich überlesen. Sry.

    Aber was willst du am Spiel denn ohne das Internet-Fenster ändern?

    Schau dir doch das Firefox-Automatisierungs-Projekt an ;)

    also das firefox projekt ist ja mit dem IE gleichzusetzen, nur halt das es mitm FF abläuft ;)

    "Aber was willst du am Spiel denn ohne das Internet-Fenster ändern?" - wie meinst du das, was ich verändern will? ;)

  • hat keiner mehr ne antwort auf eine meiner vielen fragen ? ;)

    also eine frage hab ich glaub selbst beantworten können mittlerweile:

    "6. Was genau muss bei GTASpiders "_INetGetSourcePost als POST angeben":

    [autoit]

    $loginsource = _INetGetSourcePost("http://pennergame.de/login/", "/login/check username="&$User&"&password="&$Pass&"&submitForm=Login")

    [/autoit]

    korrigiert mich wenn ich falsch liege, aber jetzt zeit mir das ArrayDispaly jedenfalls schonmal was besseres an, als vorher!

    greetz

  • Also, zum Verändern: Was willst du denn da ausbauen also Flaschen sammeln etc. ohne ein IE-Fenster?

  • Also, zum Verändern: Was willst du denn da ausbauen also Flaschen sammeln etc. ohne ein IE-Fenster?

    naja also erstmal soll das prog den login haben, und dann die statusanzeige wie geld, promille etc. und danach evtl. automatisch flaschentrinken. da dies soweit ich gesehen hab, ja alles über GET anstatt über POST läuft, dürfte das auch ohne IE zu verwirklichen sein. natürlich, ist mir klar, das wenn es deutlich länger dauert (scripten oder ablauf des progs) ohne dem IE als wie mit dem IE, ich dann selbstverständlich die variante mit dem IE vorziehen würde. - ich dachte mir nur das ich es erstmal (zumindestens den login) ohne den IE versuchen wollte/sollte. jedoch dachte ich nicht, das eine verschlüsselte url zu senden, so ein problem sein wird. zumindestens in autoit ;)

    der opensource quellcode zu nem login für PG in python ist dagegen deutlich einfacher.

    eigentlich dachte ich mir das es in autoit fast genauso abläuft mit dem encrypten, jedoch hats bisher nix geklappt :(

    greetz max sony

  • hier

    Spoiler anzeigen


    #include <IE.au3>
    Opt("MouseCoordMode",0)
    $sUsername = "xxxx"
    $sPassword = "lxxx"
    $sUrl = "http://www.pennergame.de"
    $oIE = _IECreate ($sUrl)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oUsername = _IEFormElementGetObjByName ($oForm, "username")
    $oPassword = _IEFormElementGetObjByName ($oForm, "password")
    _IEFormElementSetValue ($oUsername, $sUsername)
    _IEFormElementSetValue ($oPassword, $sPassword)
    _IEFormSubmit ($oForm)
    ;WinClose("Pennergame - Windows Internet Explorer","Pennergame - Windows Internet Explorer")
    Exit
    Func logout()

    $sUsername = ""
    $sPassword = ""
    $sUrl = "http://www.pennergame.de"
    $oIE = _IECreate ($sUrl)
    $oHWND = _IEPropertyGet($oIE, "hwnd")
    WinSetState ($oHWND, "", @SW_MAXIMIZE )
    $oForm = _IEFormGetCollection ($oIE, 0)
    $oUsername = _IEFormElementGetObjByName ($oForm, "username")
    $oPassword = _IEFormElementGetObjByName ($oForm, "password")
    _IEFormElementSetValue ($oUsername, $sUsername)
    _IEFormElementSetValue ($oPassword, $sPassword)
    _IEFormSubmit ($oForm)

    WinClose("Pennergame - Windows Internet Explorer","")

    EndFunc


    hier einpaar code schnitzel
    :rock:

  • Was macht denn dein Programm bis jetzt.
    Ich kanns nicht testen da ich die Inet2.au3 und UrlEncode.au3 nich habe

    ;Global Const $Logindaten = "http://pennergame.de/login/check/"&"username="&$User&"&password="&$Pass&"&submitForm=Login"

    Funktioniert dass denn überhaupt? Ich kanns mir nicht vorstllen^^ :thumbup:

    Einmal editiert, zuletzt von Kizum (2. März 2009 um 05:58)

  • Was macht denn dein Programm bis jetzt.
    Ich kanns nicht testen da ich die Inet2.au3 und UrlEncode.au3 nich habe

    ;Global Const $Logindaten = "http://pennergame.de/login/check/"&"username="&$User&"&password="&$Pass&"&submitForm=Login"

    Funktioniert dass denn überhaupt? Ich kanns mir nicht vorstllen^^ :thumbup:


    Was macht denn dein Programm bis jetzt.---> Es loggt sich ein.. allerdings nur mit IE, is mir jetzt au wurscht ob mit IE oder ohne wenn keiner helfen kann/will!

    "Funktioniert dass denn überhaupt?"
    nein funktioniert nicht, weil das zeichen ";" für kommentare steht.... schlauberger *g*

    greetz Max Sony

    Einmal editiert, zuletzt von MaxSony (4. März 2009 um 00:08)

  • In C++ könnte ich dir da schon eher helfen, da ich was ähnliches schon mal geschrieben habe.

    Ich weiss dass es ein Kommentar ist aber drunter schickst du ja genau diesen URL an den Server.
    Mit tcp bekommt man glaub ich nix sinnvolles vom Server zurück soweit ich mich entsinne.

    Ps: Ich glaube ich weiss was du vorhast und wenn es dass ist was ich denke dann kann ich dir sagen sowas gibts schon fertig zum Download.

  • In C++ könnte ich dir da schon eher helfen, da ich was ähnliches schon mal geschrieben habe.

    Ich weiss dass es ein Kommentar ist aber drunter schickst du ja genau diesen URL an den Server.
    Mit tcp bekommt man glaub ich nix sinnvolles vom Server zurück soweit ich mich entsinne.

    Ps: Ich glaube ich weiss was du vorhast und wenn es dass ist was ich denke dann kann ich dir sagen sowas gibts schon fertig zum Download.

    Was genau meinst du? kannst mir ja au PN schicken falls link unerwünscht ist auf autoit.de - auch in autoit geschrieben?


    ja stimmt sowas gibt google mal pennerbot :thumbup:

    wenn du vom ganz normalen flaschensammelbot sprechen solltest, kann ich dir sagen schau mal etwas weiter oben einen meiner posts an vom Sonntag, 1. März 2009, 15:20. dort ist ein stückchen vom sourcecode von diesem bot. ;) und der code ist in python. ;)

    und falls du den pennermanager meinst, der ist auch nicht in autoit geschrieben ;) und noch dazu ist das projekt eingestellt.


    greetz Max