Informationen aus einem Browser in ein Programm einlesen

Hallo,

ich möchte gerne ein Programm schreiben das mir dabei hilft einen Account bei einem Browsergame zu verwalten.
Gleich vorweg: Es geht nicht darum das Programm für mich "spielen" zu lassen, sondern nur um das Sammeln von Daten.

Ich möchte bestimmte Informationen, wie zum Beispiel Ressourcen oder Kartenpositionen, in dem Programm verwalten und (eventuell) grafisch ein wenig aufhübschen. Das Programm als solches ist nicht das Problem, sondern die Frage wie ich die Daten aus dem Browser bequem in das Programm bekomme.

Das händische abtippen, oder was das angeht auch copy and paste kommen schonmal aus Prinzip nicht in Frage, denn dann könnt ichs auch ausdrucken und ne Collage an der Zimmerwand draus machen.

Die Browserfunktionalität bzw. die HTTP-Abfragen im Programm selber unterzubringen, hab ich mir zwar auch schon überlegt, aber ich möchte eigentlich ganz gerne eine Lösung bei der ich den Browser meiner Wahl einsetzen kann und das Programm im Hintergrund einfach beim normalen "durchklicken" relevante Informationen die ohnehin an den Browser geschickt werden mitprotokolliert und so Stück für Stück das ganze wie ein Puzzle zusammensetzt. Im Prinzip halt als ob jemand hinter mir steht und sich fleissig Notizen macht um gleich nebenbei ne schicke Präsentation mit ein paar netten Bildchen zu basteln ;)

Ich hatte mir jetzt vorgestellt die Schnittstelle eventuell über ein Addon im Browser zu realisieren (für FF und IE).
Nur fehlt mir irgendwie der richtige Ansatz und detailiertes Wissen, es wäre wirklich toll wenn mich jemand in die richtige Richtung schubsen würde d.h. ein oder zwei Links beisteuern könnte die mir weiterhelfen oder auch einen Ansatz hätte an den ich jetzt noch nicht gedacht habe.
 
du könntest die winpcap - bibliothek nutzen um den datenverkehr zu überwachen und die http-geschichten des online games herausfiltern.. mit der .dll kenn ich mich allerdings ned so aus

mfg.
 
Hallo,
sonst gibts für .Net und auch für VB ein Browser-Plugin.

Dieses Plugin verwendet als Basis den IE, aber man muss sich selber ums URL Feld u.ä. draußen herum kümmern.
Man übergibt dem Plugin nur die URL die dargestellt werden soll, und dieses wird dann entsprechend dargestellt. Auch Links, Formulare u.ä. funktionieren, man halt also praktisch die Bereich unterhalb des Eingabefeldes für die URL des IEs.

Dafür kann man aber bequem Events einbauen und auch bequem den dargestellten Quelltext auslesen, woraus du dann deine Infos ziehen kannst.

Wenn du also mit dem "Browser" surfst, dann kann dieser automatisch die Infos aus dem Source code besorgen.

Ein paar Artikel zum Browser-Plubin unter .Net
http://www.codeproject.com/vb/net/IE7_Clone_VS2005_Browser.asp
http://www.codeproject.com/csharp/mshtml_automation.asp
http://www.codeproject.com/cs/miscctrl/WebBrowserEx.asp


PS: Eine andere Möglichkeit wäre es, wenn dein Prog. als Proxy fungiert. Einen einfachen HTTP Proxy zu bauen, ist gar nicht schwer.
Dann beim Browser deinen Datenstrom so umlenken, dass er über den Proxy geht, und während du dann surfst, kann der Proxy mitlesen, und immer wenn er erkennt, dass du beim Online-Game aktiv bist, wird der Source Code entsprechend analysiert.
 
Cool, Antworten ;)

@Omega:
Die Tage hatte ich auch schon daran gedacht entsprechend "tief" anzusetzen.
Interessanterweise grade heute ein paar Tools für "Experimente" im WLAN installiert, bei einem davon (glaub Ethereal) wird WinPcap mitinstalliert... Mal sehen, momentan favorisier ich grad die Proxy-Idee ;)

@Elderan:
Ich möchte bewusst die eigentlichen Browserfunktionen aus dem Programm raushalten, nur eventuell der Einfachheit halber zur Darstellung bestimmter Elemente (z.B. archivierte Kampfberichte) auf IE-Funktionen zurückgreifen.

Aber die Idee mit dem Proxy ist genau das was ich mit "in die richtige Richtung schubsen" meinte! Da weiss ich was mit anzufangen. Es gibt vermutlich schon was wo ich kräftig "leihen" kann. Und ich selbst wäre (wenn überhaupt) glaub ich in drei Wochen nicht draufgekommen ;)



Dankeschön ersteinmal, halte euch auf dem laufenden. Sogar wenns euch nicht interessiert ;)

Uiuiui, ich freu mich richtig ohne Zeitdruck aber mit einem Ziel was feines zu coden...

P.S.: Hattes nicht geschrieben weils für die Grundidee nicht so wichtig war: Ich werds im Visual Studio 2005 Professional machen um das mal inner "Praxis" richtig kennenzulernen. Bin mir noch etwas unschlüssig ob in C# oder lieber in (unmanaged) C++, kommt halt ein bischen drauf an ob ich mir zutraue auf ne Herde Zeiger (sollte ichse brauchen)aufzupassen :D Nur so als kleine info...
 
Eine weitere Möglichkeit stellt ein Greasemonkey-Script dar. Damit kannst du afaik zwar die Daten nicht an einen externes Programm leiten, aber du kannst die aktuell geladene Seite "optimieren".
Durch Greasemonkey wird es dem Nutzer erlaubt, eigene JavaScript-Dateien im Browser auszuführen, die das Erscheinungsbild und Verhalten der angezeigten Webseite individualisieren können, ohne einen Zugriff auf die eigentliche Webseite zu benötigen. Dadurch ist es beispielsweise möglich, Webseiten um Funktionen zu erweitern, Fehler in der Darstellung zu beheben, Inhalte von anderen Webseiten einzubinden und wiederkehrende Aufgaben automatisch zu erledigen.
 
Hallo,
ich würd dir zur C# raten, bin selber Fan davon ;)


Aber unmanged C++ Code mit VS2005 unterscheidet sich nicht wirklich von anderen Visual Studios und anderen C++ Libs.
Aber mit C# kann man die ganze Macht des .NET-Frameworks auskosten, und ich bin echt begeistert davon. Dem User werden soviele, zeitraubende Arbeiten abgenommen, da das Framework echt eine sehr gute Basis darstellt.
Man muss nicht mehr selber irgendwelche Datenstrukturen wie Hashtables, verkettete Listen o.ä. schreiben, super XML Parser ist auch enthalten und im Umgang mit Sockets/bzw. Netzwerkanwendungen ist es auch Klasse, genauso wie die Multi-Threading Fähigkeit.

Und wenn man schon andere Sprachen kann und sich mit dem Form-Manager von VS vorher schon etwas auskennt, dann lernt man C# super schnell, da einem die IDE wirklich sehr stark hilft.
Bin von VB6 auf VB.Net umgestiegen, ohne irgendwelche Literatur am Anfang benötigt zu haben, dennoch ist es beachtliches Programm entstanden (naja im Nachhinein würde ich die Möglichkeit von .Net deutlich mehr ausnutzen).

Hier noch ein Artikel:
Programmierung eines Proxy-Server

Ist zwar für VB6, aber die Ideen kann man dennoch gut verwenden, und wie gesagt, ein Proxy-Server der die Basics beherscht (also nix mit Cache, User-Authentifizierung/User Beschränkungen etc.) ist relativ schnell geschrieben.
 
Zurück
Oben