Globale Hooks (fps,overlay...)

Für allgemeine Fragen zur Programmierung mit PureBasic.
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Globale Hooks (fps,overlay...)

Beitrag von Agent »

Hallo PBler.

Ich weiß, solche Fragen wurden hier schon gestellt. Leider aber noch nicht ausreichend beantwortet finde ich.

Soweit ich weiß, werden solche Sachen über globale hooks gemacht...

Folgendes:
Ich möchte einen fps-counter proggen, der bei directx-anwendungen auf oberster ebene angezeigt wird (ähnlich fraps oder Teamspeak-Overlay...)

Hat jemand in dieser Richtung schonmal was gecoded?
Die overlays die hier im Forum stehen funktionieren leider nicht ausreichend.

Wir haben doch hier im Forum unsere "Super-Cracks" wie real, GPI, Nic usw... ;-)
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Na da bin ich auch mal gespannt. :D

Das Problem ist hier wirklich das DirectX-Hooking. Schau Dir auch mal die Seite http://www.tommti-systems.de an. Da gibt's im Shop einen interessante DirectX9-Wrapper-DLL. Die kann man dafür z.B. nutzen - kostet allerdings ne Menge (125 €).

Allerdings möchte ich auch gern mal in PB proggen - wurde bis dato allerdings hier nicht fündig.
Agent
Beiträge: 296
Registriert: 13.09.2004 11:28
Kontaktdaten:

Beitrag von Agent »

WOW....125€ ist aber fett.

Naja, dann warte ich mal lieber ab. Wäre halt schön wenn man(n) das irgendwie, einfach und elegand lösen könnte.

Zumal ich auch ein Zocker bin, könnte ich da einiges mit anfangen.

fps, cpu-usage, mem, das ganze Programm.

Wenn man sich mal fraps anschaust, das prog ist nur 60kb oder so. also purebasic mässig. da steckt bestimmt ne api dahinter.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

das problem ist - wie gesagt - das directx-hooking. directx ist (korrigiert mich, wenn ich was falsches schreibe) objektorientiert (COM = Component Object Model). ein directx-objekt wird erstellt, dann dafür die dazugehörige surface (oberfläche), hierfür der frontbuffer und ggf. backbuffer. in dem backbuffer wird gemalt etc... irgendwann wird der backbuffer zum frontbuffer und DAS ist der grund, weshalb einfache overlays eines anderen programm flackern: das, was gerade noch dargestellt war, wird jetzt von directx durch den backbufferinhalt übermalt. also mußt du beim hooking feststellen, wann der backbuffer zum frontbuffer wird und dann das overlay updaten. wie du siehst: nicht so simpel. zumal durch die objectorientierung in der d3d9.dll kein Present() oder EndScene() definiert ist. ;)

wenn ich mit meinen anstrengungen dahingehend weiterkomme werd ich das hier selbstverständlich posten.
traumatic
Beiträge: 478
Registriert: 27.11.2004 15:42

Re: Globale Hooks (fps,overlay...)

Beitrag von traumatic »

Es gibt ein sehr schönes Tutorial zum Thema (Code-Beispiele in ASM
- aber selbst mit begrenzten ASM-Kenntnissen durchaus verständlich
und nachvollziehbar IMHO) => google.com -> "nanobot2k" + "tut6"
Antworten