# Live Ticker durch Screenshots



## figali (10. Okt 2012)

Hallo zusammen,
seit nunmehr 5 Jahren, leite ich eine der erfolgreichsten Fifa PC Ligen in Deutschland.

Nun mit fortschreitenden Fifa Releases, ist es nicht mehr möglich in Fifa (heute: Fifa 13 über ORIGIN), auf die daten des Spiels zuzugreifen. Sie lassen sich nciht mehr auslesen, da alles online in einer Cloud gespeichert wird.

Nun zum Thema:

Ich möchte eine Art Live-Ticker haben/"programmieren", der Screenshots vom Bildschirm schiesst, wenn Fifa an ist und diese dann auf meinen Server sendet um sie im Anschluss, sofort wieder auf einem bestimmten Link meiner Seite wiederzugeben.

Theoretisch suche ich jemanden der es kann, wir können zwar alle php und mysql, aber leider niemand JAVA.

Grundidee:
Zu erstellen wäre ein Java-Tool, welche vom User selbst gestartet werden muss.
In diesem Tool würden ein paar Eingabefelder stehen, wie: 

1.Einloggname
2.Passwort
3.Spielseite (Link, wo der Screenshot hin gesendet werden soll)
4.STARTEN

Das ganze natürlich mit einem gewissen Style anpassbar.

Die Screenshots sollten ca alle 5 Sekunden neu gemacht werden und auch sofort neu gesendet werden. (Am besten löscht sich sofort der alte screenshot um Platz auf dem Clientseitigem PC zu sparen und ihn "nicht voll zu müllen").

Wenn sowas möglich ist, wäre es suuuuper, wenn mir jemand sagt, wie.
Oder vielleicht hat ja schon jemand so etwas in der Art fertig, wo rumligen oder schonmal gemacht.
Wie gesagt, kennt sich von uns niemand mit der java-Sprache aus.

In der suche habe ich das hier gefunden, welches schon genau so wie ich es will, die Screenshots macht.
So wie ich das verstanden habe, schiesst der Code, einen screenshot, sucht sich die Zahlen aus dem Screen (bei Fifa sinds ja nur 2 Zahlen [WEISS auf ROT] )
und gibt sie in einer Variable des Codes wieder. Das ist genial.

So müsste auf der Ligaseite, kein ganzer screenshot angezeigt werden, sondern wirklich nur das ergebnis.


Bin für jede Hilfe dankbar und bin auch echt bemüht, an jeder Stelle zu helfen.

Die seite wo alles sien ende nehmen soll: Figali FIFA Origin PC Liga (FIFA 13)

Liebe grüße, Mave

EDIT: Im Anhang, ist ein Programm, welches genau das macht, was ich will. Allerdings, wär mir NUR das Ergebnis lieber, anstatt nen ganzer Screenshot.

2.problem an diesem programm: Es funktioniert nur mit einer bestimmten internetseite und server


----------



## faetzminator (10. Okt 2012)

figali hat gesagt.:


> seit nunmehr 5 Jahren, leite ich eine der erfolgreichsten Fifa PC Ligen in Deutschland. [...]



Nimms nicht persönlich, aber der darauf folgende Post klang dann doch nicht so erfolgreich... Wie habt ihr in den älteren Versionen das Ergebnis ausgelesen und warum sollte das nicht mehr gehen, wenn ihr es früher geschafft habt? Das Resultat muss irgendwie vom Client auf den Server gepackt werden, und genau da kann man ansetzen.
Ich kann mir aber irgendwie nicht vorstellen, dass ihr clientseitig irgendwas mit PHP ausgelesen habt!? "Willst du mitspielen? Installier dir zuerst mal XAMPP"


----------



## Bernd Hohmann (10. Okt 2012)

faetzminator hat gesagt.:


> Wie habt ihr in den älteren Versionen das Ergebnis ausgelesen und warum sollte das nicht mehr gehen, wenn ihr es früher geschafft habt? Das Resultat muss irgendwie vom Client auf den Server gepackt werden, und genau da kann man ansetzen.



Ich nehme mal an, dass früher die Spieldaten bzw. Ergebnisse lokal auf der Platte gespeichert wurden und man von dort eine Art Savegame auslesen konnte. Jetzt wird das Zeug irgendwo auf einem Server im Netz abgelegt und der Stream dorthin ist verschlüsselt.

Wie das Auslesen jetzt durch Screenshots geschehen soll erschliesst sich mir aber leider nicht.

Bernd


----------



## faetzminator (10. Okt 2012)

Bernd, aber mit Fähigkeiten, die sich auf PHP beschränken, ist das etwas verrückt. Entweder man muss manuell das File hochladen oder PHP lokal laufen haben...
Aber da können wir noch so raten, warten wir doch auf die Antwort des TO


----------



## figali (10. Okt 2012)

Hallo, es ist genauso, wie Bernd es vermutet hat, vorher konnte man aus einer ".big" datei, die Werte auslesen, heute werden sie wie gesagt, auf einem Server bei EA zwischengespeichert.

In diesem Thread wurde bereits was dazu erzählt, keine Ahnung, warum ich ihn nicht gepostet hatte, war wohl zu spät gestern ;D

hier der thread: http://www.java-forum.org/spiele-multimedia-programmierung/66168-java-screenshots-erkennung-bildes.html


weiss ja net mal, was ich benutzen kann, um überhaupt das Programmieren zu starten.
Hab bereits diverse emulatoren, editoren usw. durch, bin dann bei eclipse hängengeblieben und komm damit schonmal gar nicht klar.
Lese zwar jeden Tag einen neuen Abschnitt über Java, aus einem "Buch" (online) um mehr über Java zu erfahren, abr so komplex wie das ist, ist ja unfassbar , steige da wenig durch.

Eclipse zeigt mir bei den codeschnipseln, die ich im obrig erwähnten thread finde, zwei fehler, bei den packages.
Ist aber auch wieder ein anderes Problem.

Irgendwie muss das zu lösen sein 

Es gibt zwar jmden, der java wirklich kann (nach eigener aussage) aber der hat natürlich nie zeit^^

Von geld mag hier keine rede sein, da wir auch bezahlen würden.
Würde aber vorschlagen, an oben  benanntem thread anzuknüpfen, soferns möglich ist.

Liebe Grüße



EDIT: 





> Bernd, aber mit Fähigkeiten, die sich auf PHP beschränken, ist das etwas verrückt. Entweder man muss manuell das File hochladen oder PHP lokal laufen haben...
> Aber da können wir noch so raten, warten wir doch auf die Antwort des TO



Hier lief ein c++ programm, welches auf dem clienten lief und immer zugang zu dieser datei hatte, nachdem zuvor der pfad angegeben wurde.


----------



## bone2 (10. Okt 2012)

gibt es nicht vielleicht ne website wo die ergebnisse des users stehen? wie das battlelog bei battlefield? online profile auszulesen ist deutlich einfacher als texterkennung in screenshots und screenshot machen an sich


----------



## figali (10. Okt 2012)

nein, leider nicht. Das wär toll


----------



## figali (10. Okt 2012)

> Willst du mitspielen? Installier dir erstmal XAMPP



wieso sollte ich das tun? 


sry für doppelpost, aber ich kann miene andren beiträge nicht mehr editieren


----------



## Bernd Hohmann (10. Okt 2012)

figali hat gesagt.:


> Hallo, es ist genauso, wie Bernd es vermutet hat, vorher konnte man aus einer ".big" datei, die Werte auslesen, heute werden sie wie gesagt, auf einem Server bei EA zwischengespeichert.



Ich bin nicht so in der Materie drin: kann man überhaupt von Java aus den DirectX Framebuffer abfotografieren?

Bernd


----------



## figali (10. Okt 2012)

Joa scheint wohl zu klappen, so amchts das angehängte Programm wahrscheinlich auch 

Vielleicht würdet Ihr das ja erstmal anschauen?? HIHI

stinknormales java, über MAVEN gemacht, leider nur komme ich mit MAVEN mal so gar nicht zurecht ^^


----------



## tuxedo (11. Okt 2012)

Hab mal kurz in das Java Tool, welches das angeblich alles so prima können soll "reingesehen" ...


Das ist super primitiv gemacht, aber meiner Meinung nach etwas zu viel des guten:

Es macht einfach mit Java's Robot-Klasse Screenshots und sendet diese, ohne sie weiter auszuwerten an einen Server:


```
....

this.socket = new Socket("81.169.187.56", 65001);

....

private BufferedImage createScreenshot() throws AWTException, InterruptedException {
    Robot robot = new Robot();
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    BufferedImage bufferedImage = robot.createScreenCapture(new Rectangle(screenSize.width, screenSize.height));
    return bufferedImage;
  }

....

public void sendImage(Socket socket, BufferedImage image) throws IOException {
    OutputStream os = socket.getOutputStream();

    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(os));
    sendText(out, getServerUrl());
    sendText(out, getUsername());
    sendText(out, getPassword());
    out.flush();

    ImageIO.write(image, "PNG", os);
    out.close();
    socket.close();
    System.out.println("Screen send successfully!");
  }
```

Alles im Klartext. Also auch Benutzername und Passwort, sowie der Screenshot selbst.

Man muss selbst darauf vertrauen dass nicht alles andere was man auf seinem Desktop noch so treibt mitgeschnitten und versendet wird. 

Wäre mir zu heiss so ein Tool einzusetzen.

Die Auswertung des Screenshots findet wohl so oder so auf dem Server statt.

Gruß
Alex

[EDIT]Das Tool kommt hier her:

Premium League Script - Match Snap Tool, sende Live Mitschnitte aus Spielen in deine Liga

Wenn man der Beschreibung dort glauben schenken darf, dann wird der Screenshot gar nicht ausgewertet, sondern nur irgendwo für die späetere betrachtung zugeordnet. Mehr nicht. 
[/EDIT]


----------



## figali (11. Okt 2012)

man hat ja auch die möglichkeit, in diesem tool, ein Spiel auszusuchen, von dem ein Screen erstellt wird.

das programm macht ja nix wildes und war auch bei mir aufn rechner bereits im einsatz.
es hat lediglich die screen an die page gesendet, das wars auch schon.

jetzt soll das progg nurnoch zahlen in dem screen erkennen, dann wärs perfekt^^


----------



## tuxedo (11. Okt 2012)

figali hat gesagt.:


> man hat ja auch die möglichkeit, in diesem tool, ein Spiel auszusuchen, von dem ein Screen erstellt wird.



Wie gesagt. Das mag sein. Aber gante Screenshots unverschlüsselt verschicken ist nicht jedermanns Sache. Stell dir vor das Tool hat 'ne Macke und verschickt fleissig unverschlüsselt Screenshots deiner Onlinebanking-Session?!



> das programm macht ja nix wildes und war auch bei mir aufn rechner bereits im einsatz.



Screenshots unverschlüsselt verschicken nennst vielleicht du "nicht wild". 



> es hat lediglich die screen an die page gesendet, das wars auch schon.



Blindes vertrauen kann gefährlich werden.

[/quote]
jetzt soll das progg nurnoch zahlen in dem screen erkennen, dann wärs perfekt^^[/QUOTE]

Super Sache. Immerhin ist 1% der Funktionalität schon implementiert. Fehlen ja nur noch 99%.

Text/Mustererkennung in Bilder gehört u.a. zu den Königsdisziplinen der Softwareentwicklung. Das macht man "nicht mal eben in 2 Wochen zu je 40 Stunden".

Oder anders gesagt:

* Ich schätze du wirst hier keinen finden der dir das mal eben (kostenlos) bastelt
* Wenn du's selbst machst bist du sicher ein Jahr damit beschäftigt. Wenn nicht sogar noch länger.

- Alex


----------



## X5-599 (11. Okt 2012)

Interesse halber: Was würde denn gegen eine Auswertung des Screenshots direkt im Client sprechen? Dann müssten nur die ermittelten Zahlen gesendet werden.

Auch: Wie sieht denn so ein Screenshot aus, der auf (ich nehme an) den Spielstand hin überprüft werden soll?


----------



## tuxedo (11. Okt 2012)

Auswertung des Screenshots auf Clientseite würde das System besser skalieren lassen. Auswerten ist ja auch immer mit CPU-Ressourcenbedarf verbunden. Wenn das auf dem Client statt findet, hat der Server weniger zu tun. "Sicherer" wäre es wohl auch, da beliebige ONlinebanking-Screenshots nich so einfach ausgewertet werden könnten. Somit gehen nur wirklich geparste Daten über die Leitung. Würde aber so oder so SSL nutzen.

Eine weitere offene Frage ist:
Woher weiß der Client wann er das passende Bild vor sich hat, welches er auswerten muss? Mit dem Robot einfach alle 100ms ein Screenshot machen, jeden nach dem passenden Screen analysieren und so "abwarten" bis das passende Bild dabei ist, ist ehrer als Systemlastige Brute-Force Methode anzusehen...

- Alex


----------



## Templarthelast (11. Okt 2012)

Ist Java nicht die falsche Sprache für sowas? Ich dachte mit c++ kann man direkt auf das Programm zugreifen und dann die Werte auslesen lassen kann ohne die ganze Geschichte mit den Screenshots.


----------



## tuxedo (11. Okt 2012)

Bin kein C/C++ Experte. Aber hat Windows nicht etwas dagegen dass Prozess A in den Speicher von Prozess B reinguckt und darin rumfuhrwerkt?! Das ist doch das was früher u.a. zu Bluescreens geführt hat, oder?


----------



## Templarthelast (11. Okt 2012)

Möglich ist es meiner Meinung nach schon, allerdings wird es Origin wahrscheinlich als Hackversuch bewerten.


----------



## faetzminator (11. Okt 2012)

tuxedo, da kannst du AFAIK einfach von deinem Programm aus das andere (Game) starten, und dann sollte es laufen.


----------



## tuxedo (11. Okt 2012)

Okay, wieder was gelernt. Dass ein Programm A welches von sich aus Programm B startet, eine irgendwie geartete Beziehung zu B hat wusste ich (sieht man in ProcessExplorer -> Parent<->Child Beziehung), aber wie sich das genau auswirkt wusste ich bis dato nicht. Wusste nur noch dass B mit den Rechten von A läuft (Stichwort RunAs).

Glaube aber nicht das das dem TO irgendwie weiter hilft ;-)

- Alex


----------



## figali (11. Okt 2012)

nicht wirklich^^

wenn wir die zahlenerkennung während des auswertens nun mal ausser acht lassen, ist es dann möglich, das Programm umzuschreiben auf andere webseiten?
Es ist schliesslich kein copyright vorhanden und der ersteller, mag mir zwar keine informationen zur erstellung eines solchen programms geben, aber teilte mit, das kein copyright vorhanden sei.
Deswegen geh ich einfach mal frech davon aus, das es nicht von ihm war


----------



## tuxedo (11. Okt 2012)

Ein Copyright gibt's in Deutschland nicht. Dafür aber ein Urheberrecht. Und das hat der Ersteller, ob er will oder nicht.



> Es ist schliesslich kein copyright vorhanden und der ersteller, ... , aber teilte mit, das kein copyright vorhanden sei.
> Deswegen geh ich einfach mal frech davon aus, das es nicht von ihm war



Das passt in sich nicht. Wenn ein Ersteller ein Programm schreibt das nicht von ihm ist, dann hat er's nicht erstellt.
Wie dem auch sei: Im Manifest und Co. ist nur der Ersteller namentlich genannt. Also ist davon auszugehen, dass auch er der Urheber ist.

Theoretisch könnte man das Programm auf einen anderen Server umstellen. Ließe sich machen. Aber was hast du davon? Du brauchst noch das passende Gegenstück dazu. Der Screenshot wird nicht einfach direkt als Datei auf einen Server geladen, sondern das Tool kommuniziert mehr oder weniger aktiv mit einer Serveranwendung, welche auf besagtem Server läuft und genau zu diesem Client-Tool passen. Ohne diese Serveranwendung bringt dir das alles nix.

Ich schlage vor du schlägst dir die Idee aus dem Kopf oder lernst selbst Programme zu schreiben die das können was du haben willst. Dies hier ist schließlich kein "Ich klau mir eine Anwendung und lass die für meine Bedürfnisse fit machen"-Forum. Wenn du Fragen oder Probleme zur Softwareentwicklung an sich hast: Kein Problem, wir helfen gerne. Aber so kommst du auf keinen grünen Zweig.

Gruß
Alex


----------



## figali (11. Okt 2012)

ähm, so wars auch gar nicht gemeint, ich habe ja das einverständnis gehabt, das programm zu editieren.
Leider sagte man mir aber nichts von einem gegenstück.

Aber weiss ich nun bescheid, ich danke vielmals


----------

