Auf fremden Screen zeichnen?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Auf fremden Screen zeichnen?

Beitrag von Programie »

Hi,

Ich habe von dem Spiel "GTA San Andreas" die Speicheradresse, wo der "IDirect3DDevice9"-Pointer steht. Und das ist ja das, was bei PB die Funktion StartDrawing() (oder OpenScreen()?) zurück gibt, oder?
Wie kann man nun mit API da reinschreiben, sodass es im Spiel angezeigt wird?

Thx schonmal im Vorraus! :allright:
BildBildBildBild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

kauf dir mal ein neues Game...
... und "Voraus" schreibt man immer noch mit nur einem "r"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Kaeru Gaman hat geschrieben:kauf dir mal ein neues Game...
Wieso?
Ich finde es cool! ;)
Kaeru Gaman hat geschrieben:... und "Voraus" schreibt man immer noch mit nur einem "r"
Egal :mrgreen:
Zuletzt geändert von Programie am 04.08.2008 17:53, insgesamt 1-mal geändert.
BildBildBildBild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

SuFu :?

Es kann extrem aufwendig sein auf fremde Screens zu zeichnen...
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Andreas_S hat geschrieben:SuFu :?

Es kann extrem aufwendig sein auf fremde Screens zu zeichnen...
Ich muss ja erstmal nur wissen, wie man mit WinAPI auf den Screen zeichnet. Den Pointer hab ich ja schon.
BildBildBildBild
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Programie hat geschrieben:
Andreas_S hat geschrieben:SuFu :?

Es kann extrem aufwendig sein auf fremde Screens zu zeichnen...
Ich muss ja erstmal nur wissen, wie man mit WinAPI auf den Screen zeichnet. Den Pointer hab ich ja schon.
Garnicht. Das ist DirectX, da wird nicht mit WinAPI drauf gezeichnet. Da wird mit DirectX drauf gezeichnet. Um zugriff auf die DirectX Session des Spiels zu bekommen, muss dein Code im Prozess des Spiels laufen, Stichwort: DLL-Injection. Den Pointer zum D3D9 Interface hast du ja. Alles weitere kannst du dem DirectX9 SDK entnehmen. Die PB Befehle wirst du zum zeichnen nicht verwenden können.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Wenn man die DLL nicht in das Programm bringt, dann muss man einen Hook im DX anbrigen, oder?
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Andreas_S hat geschrieben:Wenn man die DLL nicht in das Programm bringt, dann muss man einen Hook im DX anbrigen, oder?
Denke mal schon.
Aber das macht man doch so, oder?
BildBildBildBild
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Du willst einen DX Hook machen?

Na dann hf, es hält dich keiner davon ab... Bis auf dich selbst...
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Andreas_S hat geschrieben:Wenn man die DLL nicht in das Programm bringt, dann muss man einen Hook im DX anbrigen, oder?
Du bringst die DLL in das Programm damit du einen Hook installieren kannst. Der Hook ist nur dafür da den geeigneten Zeitpunkt abzupassen um was auf den Screen zu zeichnen. Dafür eignet sich bei DirectDraw z.b. die Flip-Prozedur. Die hooken und wenn die Prozedur ausgeführt wird, kannst du deinen Kram auf den Screen zeichnen per DirectDraw, wozu du Zugriff auf das DD-Interface benötigst. Dann die originale Flip-Prozedur aufrufen.

Ich kenne ein gutes Tutorial, das sich mit der Problematik in Direct3D beschäftigt. Leider gibts die Seite nicht mehr wo das Tutorial zu finden war.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Antworten