Bildschirmerfassung



  • Hallo!

    Ich habe vor Jahren ein kleinwenig C gelernt und möchte jetzt richtig einsteigen, um eine eigene Software-Idee umzusetzen, habe allerdings absolut keine Ahnung in wie weit diese realistisch ist, bzw. ob C(++) dafür geeignet ist.

    Ich möchte ein Programm schreiben, dass im Hintergrund läuft und hierbei z.B. ein Online-Spieleprogramm bzw. dessen Bildschirmausgabe analisieren kann.

    Das Hauptproblem ist, dass mein Programm ca. im Sekundentakt einen Screenshot vom aktuellen Bildschirm (in einem Pixel-Array abgelegt) benötigen würde.

    (1.) Wäre dies mit C(++) oder besser mit einer anderen Sprache verwirklichbar? - Gibt es vielleicht entsprechende implementierbare Hilfsprogramme?

    (2.) Gibt es Bücher zu dieser Thematik?

    Idealerweise sollte das Online-Programm diese Bildschirm-Analyse nicht verhindern, stören oder bemerken können.

    (3.) Wäre dies realistisch bzw. programmierbar?

    Habe mir deswegen auch überlegt diese Analyse vielleicht „verdeckt“ in einem zweiten PC durchzuführen.

    (4.) Wäre es irgendwie möglich die Bildschirmdaten, sei es hardwaremäßig (z.B. über Ausgänge), ggf. mit Hilfe eines Softwaretools, so abzugreifen bzw. zu übermitteln, dass diese letztlich in einer Pixel-Datei in PC Nr. 2 landen? (Ich vermute, dass der Monitorausgang hierfür eher ungeeignet ist – oder?)

    (5.) Gibt es Bücher zu dieser Thematik? – (Wie bezeichnet man eigentlich solch eine Thematik?)

    Ich wäre für jeden einzelnen Tipp sehr dankbar!

    (ggf. einfach und kurz mit zu 1., zu 2., usw. antworten)



  • 6. Kann man die Maus dann auch auf einen bestimmten Gegner zielen lassen?

    Was willst du denn da analysieren wenn ich fragen darf?



  • Möglich ist alles. Es kommt immer auf das Knowhow und die Brainpower an die man besitzt.

    Für den Anfang ist es allerdings unmöglich für dich.



  • Warum soll dies für mich unmöglich sein???

    Entweder stehen in irgend einem Buch Lösungen für diese Probleme oder eben nicht.

    Entweder gibt es geeignete, implementierbare Hilfsprogramme/Tools oder es gibt sie nicht.

    Das wirklich Schwierige ist ausschließlich, in diesem Bücher-, Info- und Software-Dschungel die Antworten auf meine spezifischen Fragen ZU FINDEN.

    Finde ich sie, muss ich doch (etwas überspitzt gesagt) nur noch abschreiben oder bestimmte Hilfsprogramme und Tools nutzen.



  • Catweazle schrieb:

    Warum soll dies für mich unmöglich sein???

    Entweder stehen in irgend einem Buch Lösungen für diese Probleme oder eben nicht.

    Entweder gibt es geeignete, implementierbare Hilfsprogramme/Tools oder es gibt sie nicht.

    Das wirklich Schwierige ist ausschließlich, in diesem Bücher-, Info- und Software-Dschungel die Antworten auf meine spezifischen Fragen ZU FINDEN.

    Finde ich sie, muss ich doch (etwas überspitzt gesagt) nur noch abschreiben oder bestimmte Hilfsprogramme und Tools nutzen.

    Dann kauf dir doch das Buch "Jetzt analysiere ich die Bildschirmausgabe von Online-Spieleprogrammen. Einschließlich einer Einführung in C++ in 21 Tagen".

    Ohne eigene tiefgreifende Kenntnisse wirst du wohl nicht weiterkommen.
    Tsts, die Jugend von heute, für alles eine fertige Lösung zum Abschreiben haben wollen ^^



  • du hast nicht zufällig vor, soetwas wie ein manipulationsprogramm für onlinespiele zu programmieren ("aimbot")? 🙄



  • Catweazle schrieb:

    (1.) Wäre dies mit C(++) oder besser mit einer anderen Sprache verwirklichbar? - Gibt es vielleicht entsprechende implementierbare Hilfsprogramme?

    Klar geht das. Hilfsprogramme wofür genau? Screenshot erstellen, Screenshot analysieren?

    (2.) Gibt es Bücher zu dieser Thematik?

    Screenshots machen und analysieren? Ich denke nicht.

    Idealerweise sollte das Online-Programm diese Bildschirm-Analyse nicht verhindern, stören oder bemerken können.

    Nur ne Frage davon wie sehr das Programm danach sucht.

    (3.) Wäre dies realistisch bzw. programmierbar?

    Je nachdem was du in den Bilder analysieren willst ist es realisiertbar.

    Habe mir deswegen auch überlegt diese Analyse vielleicht „verdeckt“ in einem zweiten PC durchzuführen.

    Netzwerk -> tausende Seiten im Internet drüber

    (4.) Wäre es irgendwie möglich die Bildschirmdaten, sei es hardwaremäßig (z.B. über Ausgänge), ggf. mit Hilfe eines Softwaretools, so abzugreifen bzw. zu übermitteln, dass diese letztlich in einer Pixel-Datei in PC Nr. 2 landen? (Ich vermute, dass der Monitorausgang hierfür eher ungeeignet ist – oder?)

    Hardwaremäßig? Willste dir noch was dafür basteln???
    Ansonsten, ja geht.

    (5.) Gibt es Bücher zu dieser Thematik? – (Wie bezeichnet man eigentlich solch eine Thematik?)

    Wiederholung. s.o.

    Ich wäre für jeden einzelnen Tipp sehr dankbar!

    (ggf. einfach und kurz mit zu 1., zu 2., usw. antworten)

    Ich will wissen was du analysieren willst und warumd as Program das nicht mitkriegn soll... hört sich sehr nach ne Spiel an.



  • Naja man könnte ich auch, ich denk mal du benutzt Windows, die DC vom Spiel hohlen. Ich denk wenn du ein Bild nach bestimmten Mustern wie z.B. Gegner durchsuchen willst benutzt du dafür eine Pixel-Vorlage. Das Programm suchst dann nach ähnlichen Pixelmustern.

    Klicks kann man entweder direkt an das Fenster schicken, oder an die Hardware. (Ersteres funktioniert bei Spielen oft nicht).

    Ich glaub ich weiss sogar wo du damit arbeiten, ja man könnte schon fast sagen "cheaten", willst.
    Liege ich mit WoW richtig? Oder doch ein anderes Online-Rollenspiel?



  • Welche Software-Idee genau ich mit meinem Programm verfolgen möchte, werde ich hier nicht verraten. Sonst könnte schließlich ggf. jeder meine Idee für sich umsetzen. - Es handelt sich aber um nichts Illegales!

    Liegt mir erst mal (ca. im Sekundentakt) eine Pixel-Datei vor, werde ich keine Probleme haben, diese meinen Bedürfnissen entsprechend zu analisieren. - Hierfür brauche ich kein Hilfsprogramm.

    Nur wie kann ich, von meinem im Hintergrund laufenden Programm aus, den aktuellen Bilschirm Pixel für Pixel in eine Datei bekommen?

    Es ist doch nicht abwägig, dass es (z.B. in C) einbindbare Funktionen oder Tools gibt, die genau dies können. - Und dass dies in einem Buch beschrieben ist, ist doch wohl genauso wenig abwägig. - Oder?



  • Catweazle schrieb:

    Es ist doch nicht abwägig, dass es (z.B. in C) einbindbare Funktionen oder Tools gibt, die genau dies können. - Und dass dies in einem Buch beschrieben ist, ist doch wohl genauso wenig abwägig. - Oder?

    Doch, es ist abwegig, dass sowas in einem Buch steht. Es ist auch gar nicht allgemeingültig lösbar.



  • Schonmal nen Screenshot gemacht im Spiel? Also bei mir stockt fast jedes Spiel für ne Sekunde... und wenn ich das jetzt jede Sekunde machen würde...

    Also wenn ich "Druck" drücke, dann hab ich den aktuellen Bildschirminhalt im Zwischenspeicher. Von da kann ich es in einem Programm einfügen.

    Kannst dich ja mal informieren wie man das mit der WinAPI machen kann.
    Gimp hat auch ein nettes Feature, da holt der Screenshots nur von einem Fenster. Keine Ahnung welche Sprache das ist, kannst ja mal in den Source gucken.

    Und ich denke nicht, dass deine Idee so revulotionär ist, dass sie jemand dir klaut und dann verkauft 🙄

    Edit:
    Eine Minute suche und den ersten Treffer : http://www.codeproject.com/bitmap/screencapture.asp

    Edit2:
    So wie ich das sehe musst du auch wissen ob das Programm OpenGL, Direct3D oder sonstwas nutzt.



  • Wie "nicht allgemeingültig lösbar"?

    Es gibt z.B. das Programm "Corel Capture", das (sogar mit einigen Features) genau das kann, was ich für mein Programm benötige.

    Dessen Programmierer haben sicher auch nicht gezaubern, sondern gängige Programmiersprachen und Tools genutzt und sich ihr Wissen auch aus Büchern angeeignet.



  • Catweazle schrieb:

    Es gibt z.B. das Programm "Corel Capture", das (sogar mit einigen Features) genau das kann, was ich für mein Programm benötige.

    Unter Windows gibt es dafür eine API namens BitBlt zum Transportieren von Bitblöcken (Pixeln) zwischen verschiedenen Geräten (Monitore, Bitmaps im Speicher, ...): http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_0fzo.asp Unter OpenGL und DirectX im Vollbildmodus geht das aber glaub ich nicht. Zumindest bei OpenGL weiss ich, dass es eine eigene API für diesen Zweck bietet. Und auch DirectX umgeht ja schließlich die GDI-Schicht.

    //edit:
    Sorry the_alien, hab mir den codeproject-Link jetzt erst angeschaut. Damit ist der Beitrag von mir, was BitBlt betrifft, überflüssig. Dort wird die Funktion ja verwendet, so dass catweazel wissen müsste, wonach zu gucken ist. Was OpenGL angeht gibt es hier die OpenGl Programming Guide :http://www.opengl.org/documentation/red_book_1.0/. Dort steht im Chapter 8 (auch online http://www.rush3d.com/reference/opengl-redbook-1.1/chapter08.html) näheres dazu. Wie Du es auch machen willst, catweazel, FALSCHES FORUM


Anmelden zum Antworten