_ieform

  • Hi,

    ich hab da en Problem bei einem Login in ein Browsergame http://www.battleknight.de :comp1:

    Mein Problem lieg darin das ich nicht weiss wie ich den Server auswählen soll.
    Ich hab keinen Befehl gefunden der in der ListBox einen Eintrag wählen kann.

    Das hier ist schon mal min Grundgerüst wäre nett wenn ih mir helfen würdet...

    Spoiler anzeigen
    [autoit]

    include<ie.au3>
    $ie=_IECreate("www.battleknight.de")
    _IELoadWait($ie)
    $form=_IEFormGetObjByName($ie, "form1")
    $benutzername=_IEFormElementGetObjByName($form, "user_name")
    _IEFormElementSetValue($benutzername, "xxx")
    $passwort=_IEFormElementGetObjByName($form, "user_password")
    _IEFormElementSetValue($passwort, "xxx")
    $server=_IEFormElementGetObjByName($form, "server")
    _IEFormelementsetvalue($server,"s3.battleknight.de")
    _ieformsubmit($form)

    [/autoit]

    MFG
    money

    Edit: Das mit dem Server auswählen hab ich geschafft abe das absenden funktioniert noch nicht.

    Edit2:Gut, das mitm absenden hat auch geklappt^^
    aber jetzt hab ich das Problem das ich das einen String auslesen müsste aber nicht weiss wie...

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    2 Mal editiert, zuletzt von monkey (28. September 2007 um 21:11)

    • Offizieller Beitrag

    Hi!

    Zitat

    aber nicht weiss wie...

    Wir auch nicht - zumindest nicht ohne weitere Informationen. Beschreib doch bitte was und wo du auslesen willst, am besten mit dem Quelltext oder zumindest dem entscheidenden Ausschnitt (wenn du weißt, was du tust ;)).

    peethebee

  • Ich müsste aus dieser Zeile die 50 auslesen....

    Spoiler anzeigen

    <td background="art/table_back.jpg" align="center" style="padding:2px 2px 2px 2px;"><p>Du hast während deiner Arbeitszeit <div id="number">50</div> <img src="art/icon_taler.gif" align="absmiddle"> verdient.</p>

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

  • Hi,
    StringBetween kenn ich nicht, deshalb habe ich es etwas umständlicher gelöst ;)

    Spoiler anzeigen
    [autoit]

    $Zeile="<td background=""art/table_back.jpg"" align=""center"" style=""padding:2px 2px 2px 2px;""><p>Du hast während deiner Arbeitszeit <div id=""number"">50</div> <img src=""art/icon_taler.gif"" align=""absmiddle""> verdient.</p>"
    $GrossKleinEgal=0
    $SuchPos=StringInstr($Zeile, "<div id=" &Chr(34) &"number", $GrossKleinEgal)+1
    If $SuchPos>0 Then
    $Tmp=StringMid($Zeile, $SuchPos+16) ;kann mich auch verzählt haben ;-))
    $Verdienst=StringLeft($Tmp, StringInStr($Tmp, "<")-1)
    Else
    $Verdienst="mglw. nix"
    EndIf
    MsgBox(0, "Na toll..", "Dein Verdienst:" &$Verdienst)

    [/autoit]

    ..es ist wegen der Chr(34) nicht ganz einfach, den String in $Zeile hineinzubekommen, aber danach hatteste ja nicht gefragt :D
    (Ich habe extra die übersichtliche Form gewählt, damit zu sehen ist, was da gemacht wird..)
    [Edit]
    Der Code ist selbstverständlich getestet und liefert den gewünschten Wert..
    Gruß
    ytwinky

    (Ich) benutze stets die aktuelle (Beta) und SciTE..

    Einmal editiert, zuletzt von ytwinky (29. September 2007 um 17:43)

  • das Problem is das es ja nich immer die 50 ist und das sich das auch ändert....

    und ich nicht weiss ob ich das über denn quelltext machen kann

    z.B:

    _iegetobjbyid($ie, "number")

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    Einmal editiert, zuletzt von monkey (29. September 2007 um 19:06)

  • So geht das bei beliebigen Zahlen:

    [autoit]

    #include<String.au3>
    $zeile = ' <td background="art/table_back.jpg" align="center" style="padding:2px 2px 2px 2px;"><p>Du hast während deiner Arbeitszeit <div id="number">50</div> <img src="art/icon_taler.gif" align="absmiddle"> verdient.</p>'
    $erg = _StringBetween($zeile,'Du hast während deiner Arbeitszeit <div id="number">','</div> <img src="art/icon_taler.gif" align="absmiddle"> verdient.')
    MsgBox(0,"",$erg[0])

    [/autoit]


    Den Quelltext bekommt man dabei über
    $sHTML = _IEDocReadHTML ($oIE)

    Über den Quelltext sollte es auch so gehen: (Dabei muss _IEdocreadhtml NICHT aufgerufen werden)

    [autoit]

    $oDiv = _IEGetObjById ($oIE, "number")
    MsgBox(0,"",_IEPropertyGet($oDiv, "innertext"))

    [/autoit]

    Einmal editiert, zuletzt von progandy (29. September 2007 um 19:19)

  • Danke!!!
    Das funktioniert super...

    Script is fertig^^

    Monkey

    edit: Aber mal so ne Frage nebenbei...

    Wie überprüfe ich ob die aus taste gedrückt ist?
    sowie _ispressed

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    Einmal editiert, zuletzt von monkey (2. Oktober 2007 um 18:30)

  • Weiss denn keiner wie man herausfindet ob die Maustaste gedrückt ist?

    Normalerweise braucht man für _ispressed die Hex aber ich hab keine Ahnung was die Hex der Maustaste "left" ist.

    MFG
    monkey

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    • Offizieller Beitrag

    In bestimmt 3 Threads zu "_IsPressed" geht es um die Maustaste - such doch mal danach... Ich habe es auch nicht im Kopf. Außerdem haben wir auch schon Listen aller Codes gepostet (ist die nicht auch in der Hilfe?).

    Viel Erfolg beim Suchen,
    peethebee

  • Hi,

    ich hab mich mal umgschaut aber nur einen code gefunden bei dem eine Aktion ausgeführt wird wenn die maustaste gedrückt wurde.
    abe ich bin auf de such nach eine Aktion ausgeführt wird wenn die maustaste gedückt gehalten wird. Und dazu hab ich nichts gefunden.

    Mfg
    monkey

    Monkey - die finale Potenz von göttlich!
    Sloganizer

    • Offizieller Beitrag

    Also es gibt folgende Mausbezogene GUI-Events:

    $GUI_EVENT_PRIMARYDOWN
    $GUI_EVENT_PRIMARYUP
    $GUI_EVENT_SECONDARYDOWN
    $GUI_EVENT_SECONDARYUP
    $GUI_EVENT_MOUSEMOVE

    Diese kannst du nutzen.
    Für Maus gedrückt halten demzufolge das Intervall zwischen den Events $GUI_EVENT_PRIMARYDOWN und $GUI_EVENT_PRIMARYUP.
    Da es GUI-Events sind benötigst du aber eine GUI-Umgebung.
    Versuchs vielleicht mal mit _IECreateEmbedded( ).