1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. MaxSony

Beiträge von MaxSony

  • Login in GUI ohne IE

    • MaxSony
    • 28. Februar 2009 um 19:26

    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

  • Login in GUI ohne IE

    • MaxSony
    • 28. Februar 2009 um 19:04
    Zitat von MatthiasG.

    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? ;)

  • Login in GUI ohne IE

    • MaxSony
    • 28. Februar 2009 um 18:26
    Zitat von MatthiasG.

    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

  • Login in GUI ohne IE

    • MaxSony
    • 28. Februar 2009 um 14:51

    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

  • _Stringbetween funkt = 0

    • MaxSony
    • 15. Februar 2009 um 13:22

    danke -

    das letztere hat funktioniert so wie es soll...

    jedoch kannst du mir bitte erklaeren wie du auf die zahl "11" bei stringtrimleft gekommen bist? - und warum muss man jetzt kein @LF mehr verwenden? - vorher war doch genauso wie jetzt ein zeilenumbruch dazwischen?!

    greetz Max Sony

  • _Stringbetween funkt = 0

    • MaxSony
    • 15. Februar 2009 um 04:47

    HI

    Ich würde euch mal bitten diesen teil selbst nachzuschauen im quelltext, warum er nicht funktioniert. ich weiss, das stringbetween wohl @error = 1 ausspuckt, nur für mich unerklärlich, da meiner meinung nach alles stimmt!

    [autoit]

    #include <Inet.au3>
    #include <String.au3>
    #include <GuiConstantsEx.au3>

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

    GUICreate("test", 650, 500)

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

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/login/"), '<td style="text-align:right;">', 'Spieler online</span>' & @LF)
    $online = StringTrimLeft($sonline[0], 10)
    GUICtrlCreateLabel("" & $online & " Spieler online", 540, 485);spieleronline
    GUISetState()

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]

    Bis vor tagen ging es noch mit genau dem gleichen code, jedoch hat sich meiner meinung nach (hab es 1000x verglichen) der quelltext nicht geändert (zumindestens ned an den relevanten stellen)
    greetz max sony

  • _StringBetween gibt immer 0 zurück!

    • MaxSony
    • 8. Februar 2009 um 23:50

    Ok, es lag am stringbetween

    Zur Aufklärung für andere, was ich rausgefunden hab, was StringTrimRight bzw StringTrimLeft angeht.(hoffe es stimmt): 1 Tabulatorsprung zählt als 1; 1. Zahl oder Buchstabe etc. zählt als 1; 1 Leerzeichen zählt als 1 (hatte selbst mit dem tabulatorsprung zu kämpfen, da ich nicht wusste als wieviel das nun zählt)

    Habs nun geschafft ^^ ;)

    Danke für deine Hilfe und danke auch an die anderen die geholfen haben, viele weitere fragen zu anderen themen werden sicher folgen *g*

    haut rein

    greetz Max Sony

  • _StringBetween gibt immer 0 zurück!

    • MaxSony
    • 8. Februar 2009 um 22:56

    werden denn leerzeichen mitgezählt bei stringtrim ? ;)

  • _StringBetween gibt immer 0 zurück!

    • MaxSony
    • 8. Februar 2009 um 22:49

    HI

    Danke für eure bemühungen, jetzt klappts.

    Nur leider größtenteils nur mithilfe von C+P.

    Ich wollte jetzt noch die Serverzeit auslesen:

    Im Quelltext steht folgendes:

    Code
    var currenttime = 'February 08, 2009 22:28:56'
    var montharray=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
    var serverdate=new Date(currenttime)

    Hier mal mein ansatz dazu:

    [autoit]

    $szeit = _StringBetween(_INetGetSource("http://pennergame.de/login/"), "var currenttime", "var montharray=new" & @LF)
    $zeit = StringTrimRight ($szeit[0], 22)
    $zeit = StringTrimLeft ($szeit[0], 1)
    GUICtrlCreateLabel("Serverzeit: " & $zeit, 5, 485)
    GUISetState()

    [/autoit]

    Nun bringt er mir aber immer Error in Line 62

    $zeit = StringTrimRight ($szeit[0], 22)
    $zeit = StringTrimRight ($szeit^ERROR

    Error: Subscript used with non-Array variable.

    Bedeutet die fehlermeldung das das StringBetween also quasi der quellcode falsch ist?

    Wäre dankbar wenn ihr mir genau sagen könntet wo der fehler liegt, dann weiss ichs beim nächsten mal bestimmt.

    Und ein anderes Problem ist, das sich je nach Monat ja die länge des StringTrimLeft ändert. da die monate verschieden lang sind. - oder gibts ne bessere lösung?

    greetz max sony

  • _StringBetween gibt immer 0 zurück!

    • MaxSony
    • 8. Februar 2009 um 20:43

    Ok, das mit dem Array hab ich verstanden, nur was für ein befehl geht mir da jetzt ab mit dem ich aus dem quelltext die spieleranzahl zb: "40321" in einer GUI einblenden lasse.

    [autoit]


    #include <GUIConstantsEx.au3>
    #include <String.au3>
    GUICreate ("Pennergame", 650, 500)

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

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/"), _
    '<td style="text-align:right;"><span>', _
    "Spieler online</span>")
    GUICtrlCreateLabel ( ""&$sonline&" Spieler online", 560, 485);spieleronline

    [/autoit]

    greetz

  • _StringBetween gibt immer 0 zurück!

    • MaxSony
    • 8. Februar 2009 um 20:19

    HI

    Also ich hab die suche benutzt und auch viele derartiger beiträge gefunden.

    jedoch verhalf leider nichts von den möglichen lösungen mir zum erfolg.

    [autoit]

    $sonline = _StringBetween(_INetGetSource("http://pennergame.de/"), _
    '<td style="text-align:right;"><span>', _
    "Spieler online</span>")
    GUICtrlCreateLabel ( ""&_ArrayDisplay ($sonline, "")&" Spieler online", 560, 485);spieleronline

    [/autoit]

    Was fehlt hier noch, oder was ist verkehrt? , oder funktioniert das generell nicht in einem "label" ?

    greetz Max Sony

  • Kreise aus jpg berechnen?

    • MaxSony
    • 8. Februar 2009 um 16:08

    HI

    Mithilfe der Suchfunktion findet man einiges. - einfach mal "Captcha" etc. eingeben und dann wirst du schon bald zu deinem pfandflaschenbot kommen ;)

    Und ja es ist möglich, da es schon ettliche gut funktionierende bots gibt, die zu 99% den richtigen kreis treffen.

    greetz Max Sony

  • Gui

    • MaxSony
    • 6. Februar 2009 um 14:02

    HI

    Musst mal in der AutoIt3.chm unter "GUICtrlCreateButton" bzw GUICtrlCreateLabel schaun. da gibts die style und Exstyle parameter die man fast bei allen GUICtrls verwenden kann.

    Meiner meinung nach müsste das der parameter $BS_VCENTER (Konstanten für Schaltflächen-Stile) sein.
    Oder $SS_CENTER (Konstanten für Label/Static-Stile) - einfach mal bei style bzw exstyle einsetzen.

    GUICtrlCreateButton ( "text", left, top [, width [, height [, style [, exStyle]]]] )


    GUICtrlCreateLabel ( "text", left, top [, width [, height [, style [, exStyle]]]] )

  • Einzelne Stücke einer Webseite in einer GUI anzeigen

    • MaxSony
    • 5. Februar 2009 um 20:21
    Zitat von teh_hahn

    Ähm, _StringBetween gibt ein String-Array zurück... Außerdem waren da noch andere Fehler und Unnötiges in Deinem Skript.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <INet.au3>
    #include <IE.au3>
    #include <String.au3>

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

    Exit main()

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

    Func OnAutoItStart()
    Opt("GUICloseOnEsc", 0)
    Opt("MustDeclareVars", 0)
    EndFunc ;==>OnAutoItStart

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

    Func main()
    ;~ Constants & Variables
    Local Const $STMPFILE = @ScriptDir & "\tmp.html"
    Local $oIE = 0, $hIECtrl = 0, $sHTML = ""

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

    ;~ GUI creation
    GUICreate("GUI TEST", 650, 500)
    GUICtrlCreateTab(0, 0, 650, 500)
    GUICtrlCreateTabItem("Login")

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

    ;~ HTML parsing & file interaction
    FileDelete($STMPFILE)
    $sHTML = _StringBetween(_INetGetSource('http://autoit.de/index.php?form=UserLogin&'), _
    '<script type="text/javascript" src="wcf/js/AjaxRequest.class.js"></script>', _
    '<div id="footer">')
    If @error Then MsgBox(16, "Parse Error", "Unable to parse the webpage!")
    $sHTML = $sHTML[0]
    FileWrite($STMPFILE, $sHTML)

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

    _IEErrorHandlerRegister()
    $oIE = _IECreateEmbedded()
    $hIECtrl = GUICtrlCreateObj($oIE, 0, 25, 650, 450)

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

    GUISetState()

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

    _IENavigate($oIE, "file://" & $STMPFILE)

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

    While 1
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Return 0
    WEnd
    EndFunc ;==>main

    [/autoit]
    Alles anzeigen

    Okey, danke für deine antwort. Hat super geklappt.

    EDIT: Mir ist noch aufgefallen, das wenn ich in die Felder in der GUI bei anmelden meine daten angebe und auf einloggen etc. klicke kommt "Dieses Programm kann die Webseite nicht anzeigen." fehlermeldung.

    in IENavigate funktioniert es das er quasi weiterleitet wenn man die daten eingibt. - Aber in meinem "Stückchen" der webseite, leider nicht. - Wäre das auch noch möglich?

    Und noch ein eher kleineres Problem. - Der Bereich der mir angezeigt wird (also der Login bereich) ist im originalen weiße schrift mit schwarzem hintergrund und weisse eingabefelder. - Nun wird mir allerdings die schrift (wo steht "Login" und "Passwort") auch schwarz angezeigt, sodass die schrift nur sichtbar wird wenn man sie mit der maus markiert. Habe schon alles ausprobiert, die hintergrundfarben der GUI bzw des Ctrls einzustellen, jedoch wirken sich die farben nie auf das angezeigte Objekt aus. - Weiss einer nen Rat? - Wäre sehr dankbar!

    greetz Max Sony

  • Ping funktion sendet immer eine Ping zeit zurück

    • MaxSony
    • 5. Februar 2009 um 18:16
    Zitat von Padmak

    hm ich würd ma per cmd machen
    oder hast des schon gemacht?^^

    Padmak

    [OT]
    ok einigen wir uns auf gleichheit :D
    [/OT]

    Das hab ich glaub als allererstes gemacht ;)

    Zitat von Padmak

    ich glaub net dass er weiß was du meinst :D

    Padmak

    [OT]
    mein zitat ist cooler als deins :D:D:D:D:D
    [/OT]

    Ich kenne mich zwar mit Autoit noch nicht wirklich aus, aber mit PC's und internet im allgemeinen weiß ich meiner meinung nach schon recht viel.

    Mich wundert es nur das es wirklich leute gibt die nicht wissen was ein proxy ist.

    Ok das thema ist damit beendet. Bedanke mich bei allen die mir geholfen haben. Thread closed. Topic marked as solved ;)

    greetz max sony

  • Ping funktion sendet immer eine Ping zeit zurück

    • MaxSony
    • 5. Februar 2009 um 18:11

    Okey

    Das Problem wurde gelöst:

    Hab mal im internet nach dieser dubiosen adresse gesucht, und dabei rausgefunden, das der DNS cache vergiftet sein kann.

    Durch diesen DNS cache oder einfach vom ISP wird eine weiterleitung zu der dubiosen adresse veranlasst, wenn eine url mit dem muster: "xxx.yyy.zzz" aufgerufen wird und nicht existiert.

    Problemlösung in meinem Fall.

    [autoit]

    $ping = Ping ("blubbelgedoens.de", 300)
    If $ping <= 0 Then
    TrayTip ("Verbindung fehlgeschlagen", "Entweder blubbelgedoens.de ist zur Zeit nicht erreichbar, oder Sie haben keine Verbindung zum Internet", 10, 2)
    Else
    TrayTip ("Verbindung:", "Erfolgreich mit blubbelgedoens.de verbunden ", 10, 1)
    EndIf

    [/autoit]

    Da in meinem Fall Kabel-Deutschland der Übeltäter ist, und kabeldeutschland eine weiterleitung nur zulässt wenn "www." am anfang der url steht, habe ich das "www." einfach für die ping funktion weggelassen und schon klappts einwandfrei wie es klappen soll:

    Beispiel: ping blubbelgedoens.de ---> TrayTip ("Verbindung fehlgeschlagen", "Entweder blubbelgedoens.de ist zur Zeit nicht erreichbar, oder Sie haben keine Verbindung zum Internet", 10, 2)
    ping autoit.de ---> TrayTip ("Verbindung:", "Erfolgreich mit autoit.de verbunden ", 10, 1)

    Zur INFO: Es wurde behauptet das mittlerweile viele provider eine solche weiterleitung automatisch "anbieten", ohne dem wissen der nutzer und sich dabei noch ein paar euros dazuverdienen (durch weiterleitung zu werbezwecken)

    greetz Max Sony

  • Einzelne Stücke einer Webseite in einer GUI anzeigen

    • MaxSony
    • 5. Februar 2009 um 16:49
    Zitat von L3viathan2142

    ich weiß zumindest, wo der Fehler liegt: in $login steht nix.
    Vermutlich _StringBetween falsch.

    Okey, also liegt es vermutlich an $start und $end ---> nur wie muss ich das machen, damit die richtig agieren?

    greetz

  • Einzelne Stücke einer Webseite in einer GUI anzeigen

    • MaxSony
    • 5. Februar 2009 um 16:13
    Zitat von L3viathan2142

    ich weiß zumindest, wo der Fehler liegt: in $login steht nix.
    Vermutlich _StringBetween falsch.

    also meinst du man sollte anstatt _StringBetween lieber StringRegExp verwenden? - da weiss ich jedoch leider nicht was in der autoit hilfe mit "pattern= Das Suchmuster des regulären Ausdrucks." gemeint ist.

    Und StringRegExp überprüft ja nur den string und tut nicht den relevanten teil herausfiltern wie es _stringbetween macht, oder?

    greetz max sony

  • Einzelne Stücke einer Webseite in einer GUI anzeigen

    • MaxSony
    • 5. Februar 2009 um 16:06

    HI

    habs ausprobiert, jedoch leider zeigt er mir weiterhin "nichts" an.

    Die GUI lässt sich ohne fehler öffnen, doch dann wird in dem Reiter "Login/Register" nichts angezeigt.

    Eine andere frage wäre: wie finde ich in dem sourcecode die richtigen stellen raus, die ich bei $start und $end angeben muss? - weiss nämlich nicht ob meine werte für $start und $end in meinem autoit code richtig sind.

    weiss jetzt nicht woran das liegen könnte, bzw was man ändern müsste um da was anzuzeigen.

    weitere vorschläge sind gerne gesehen ;)

    greetz max sony

  • Ping funktion sendet immer eine Ping zeit zurück

    • MaxSony
    • 5. Februar 2009 um 15:39
    Zitat von Jam00

    du musst nicht nur > ändern, sondern auch noch @error zu $var!!!!!!!!!!!!

    ja das weiss ich ^^ hab den kompletten code strg+c --autoit-- strg+v

    ;) greetz

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™