Auf fremden Screen zeichnen?

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Andreas_S hat geschrieben:Du willst einen DX Hook machen?

Na dann hf, es hält dich keiner davon ab... Bis auf dich selbst...
Wenn er den Pointer zum Interface hat ist das unproblematisch Hooks für die Prozeduren zu installieren. Er muss ja nur die Prozedur-Adressen im Interface ändern, so das sie auf seine eigenen Prozeduren zeigen. Die eigentlische Schwierigkeit ist es an den Pointer zum Interface zu kommen.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Vor langer langer Zeit hab ich mit RemoteAPI versucht Age of Empires so zu modifizieren, dass man das Spiel im Fenstermodus spielen kann. Dabei musste ich auch solche Interfaces rausholen.

Hier ist der "AoE Launcher", welcher dank 8-Bit Farbmodus nie richtig funktioniert hat:

http://www.bradan.eu/files/aoe.zip

Vielleicht bringt es euch was, vielleicht auch nicht.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Thema könnte verschoben werden, und Titel angepasst werden...

Und wie kommt man zum Pointer? Kann mir nicht vorstellen das das nur das Handle ist...

Allgemein ist das Thema sehr intressant...


EDIT:

Ah, DarkDragon, schon lange nicht mehr gelesen^^
Benutzeravatar
Knight_Rider_2000
Beiträge: 145
Registriert: 05.02.2007 20:46
Kontaktdaten:

Beitrag von Knight_Rider_2000 »

Andreas_S wrote:
Thema könnte verschoben werden, und Titel angepasst werden...
genau denn die WinAPI hat nix mit DirectX zu tun
PB 4.20,Blitz3D 1.98,Microsoft Visual Studio 2005 Professional, Microsoft Visual Studio 2008 Professional
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

seht ihr hier irgendwo ein Win oder ein OS bei dem API in der Forenüberschrift? Bild

DX ist auch ein Application Programming Interface. Bild


...aber ich bin ja nicht so, wir haben ja ein Subforum "Grafik & Sound - Programmierung"

*schawupp*
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 »

Mal wegen der Aussage, dass das in dem falschem Forum ist:
Ich möchte mit WinAPI auf eine Screen zeichnen, da ich davon ausgehe, dass PB nicht auf einen DX-Pointer eines anderen Programms zeichnen kann. :wink:
Daher hab ich das Thema in dem Forum "APIs" erstellt. :)
Es ist ja API, oder nicht?

Lange Rede kurzer Sinn. Mir geht es nicht darum, dass das Thema in ein bestimmtes Forum gehört, sondern dass ich mit API (oder was auch immer, hauptsache es geht :mrgreen:) auf den DX-Screen zeichen kann ohne irgendwas mit Overlay oder sowas in der Richtug zu machen.

@DarkDragon: Hab mir das mit dem AOE-Hook mal angeschaut, aber irgendwie verstehe ich den Code nicht so richtig. :lol:
Zuletzt geändert von Programie am 08.08.2008 20:48, insgesamt 1-mal geändert.
BildBildBildBild
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

wie die kollegen schon sagten, es ist keine WinOS-API funktion, nach der du da fragst, sondern eine DX (-API) funktion.

> Ich möchte mit WinAPI auf eine Screen zeichnen, da ich davon ausgehe, dass PB nicht auf einen DX-Pointer eines anderen Programms zeichnen kann.

wieso gehst du davon aus, dass man mit OS-API überhaupt irgendwo auf irgendeinen screen zeichnen kann?



...und wie ich bereits sagte, ist DX auch ein API, aber es ist eben noch viel eindeutiger Grafik-Programmierung.



aber mir ist das auch scheißegal, und wenn ihr euch jetzt drüber streitet, in welchem subforum dieser thread stehen soll, dann verschieb ich ihn ein letztes mal in ein ganz anderes subforum...



PS:
@Programie
um zukünftigen mißverständnissen vorzubeugen:
unter Win-API versteht man "nur" das Windows OS-API, nicht das DirectX-API


@ Andreas_S & night_Rider_2000
das andere Subforum heißt "APIs", und ist für für jedes mögliche API das richtige Subforum.
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 »

So, nach längerem Überlegen und Suchen ist mir eingefallen, dass man mit einer Proxy DLL auch auf den Bildschirm eines anderen DirectX-Programmes zeichnen könnte. Man muss ja nur eine DLL erstellen, welche die originale d3d9.dll öffnet und die richtige Funktion aufruft. Danach kann man dann selbst noch dran rumbasteln, was wirklich zurückgegeben werden soll.
Jetzt aber das Problem: Gibt es irgendwo eine Liste oder Dokumentation mit den ganzen Funktionen und den Parametern?
Die Funktionsnamen der d3d9.dll hab ich schon, aber ich weiß die Anzahl und Typen der einzelnen Funktionen nicht.

Hier die Liste der Funktionen:

Code: Alles auswählen

D3DPERF_BeginEvent(Color,Name)
D3DPERF_EndEvent()
D3DPERF_GetStatus()
D3DPERF_QueryRepeatFrame()
D3DPERF_SetMarker(Color,Name)
D3DPERF_SetOptions(Options)
D3DPERF_SetRegion(Color,Name)
DebugSetLevel()
DebugSetMute()
Direct3DCreate9(SDKVersion)
Direct3DCreate9Ex()
Direct3DShaderValidatorCreate9()
PSGPError()
PSGPSampleTexture()
Zuletzt geändert von Programie am 27.10.2008 12:45, insgesamt 1-mal geändert.
BildBildBildBild
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Das API Forum ist für jede API da, egal ob SDL, DirectX, GTK oder WinAPI.
Alles was nicht nativ von PB unterstützt wird, aber über API umsetzbar ist
kann da rein. Hier ist es ja auch nicht unpassend, obwohl es hier ja mehr
um native Funktionen gehen sollte.

Habt alle recht :wink:

gn8
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Programie
Beiträge: 1280
Registriert: 06.08.2005 22:56
Computerausstattung: https://www.sysprofile.de/id160800
Wohnort: Gernsbach
Kontaktdaten:

Beitrag von Programie »

Ok, ich habe die Parameter von den Funktionen der d3d9.dll gefunden. :allright:
Google war heute mal nicht kaputt. :lol:
Gestern hab ich ewig gesucht und nichts gefunden. Heute suche ich und finde etwas nach vielleicht 10 Minuten.

Ich habe den Post mit den Funktionen geupdatet. ;)

Und fragt mich nicht, was die Parameter für ne Bedeutung haben, weil das frage ich mich auch. :mrgreen:

Quelle: DirectX Functions
BildBildBildBild
Antworten