AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Screenshot mit DirectX

Screenshot mit DirectX

Ein Thema von kurtm1 · begonnen am 15. Mai 2004 · letzter Beitrag vom 26. Jan 2009
Antwort Antwort
kurtm1

Registriert seit: 13. Dez 2003
348 Beiträge
 
#1

Screenshot mit DirectX

  Alt 15. Mai 2004, 13:21
Da die normalen Delphi Prozeduren relativ langsam für Screenshots sind, wollte ich mal probieren einen Screeníe mit Directx machen

Habe dabei diese Links gefunden:

http://www.gamedev.net/reference/art...rticle1844.asp
http://msdn.microsoft.com/library/de...screenshot.asp
//EDIT: Hier das genaze für VB: http://www.mvps.org/vbdx/articles/screenshot/

Weiß jemand wie das in Delphi funktionieren könnte?
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Screenshot mit DirectX

  Alt 15. Mai 2004, 14:10
Ja, mit sehr komplexen API-Hooks. Bin gerade dabei etwas derartiges zu schreiben (fast fertig ^^) ...

ciao, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Screenshot mit DirectX

  Alt 16. Mai 2004, 16:54
Hab das jetzt mal schnell zusammengeschrieben ... ich hoffe es geht, habs nicht allzusehr getestet (bisher nur unter xp sp2).
Sollte für dx8.1 und dx9 funktionieren. Mit F12 kannst du screenshots machen, die dann im ordner der !3d-anwendung! gespeichert werden. Der pfad wird angezeigt.

Bei dx9 hab ich kleine 'beendigungsprobleme', d.h. es kann passieren, dass ne menge fehlermeldungen beim beenden der 3d-anwendung kommen. Vorheriges 'de-injezieren' (wie sagt man das im deutschen???) kann dabei abhilfe schaffen.

Anbei liegt ein DLL-Injektionsprogramm mit der zu injezierenden DLL (injector.exe und hookd3d.dll) und noch ein paar directx dlls, die du/ihr evtl. noch ins windows\system32 verzeichnis kopieren müsst (keine dlls überschreiben!)

Den Quellcode muss ich noch wesentlich verbessern, aber man kann sehen, ein ansatz ist da ...
(ob ich den quellcode früher oder später rausrücke muss ich mir erst noch überlegen, da ich schon ein halbes jahr daran arbeite ...)

ciao, Philipp
Angehängte Dateien
Dateityp: zip dx_dlls.zip (1,47 MB, 106x aufgerufen)
Dateityp: zip dllinjektor_dll.zip (271,3 KB, 110x aufgerufen)
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Benutzerbild von vlees91
vlees91

Registriert seit: 19. Apr 2004
843 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Screenshot mit DirectX

  Alt 25. Jan 2009, 13:46
erstmal vorab: Ich habe mir dieses Beispiel noch nicht angesehen aber wenn ich das richtig lese wird eine DLL in die DirectX Anwendung injected?
Dummerweise gibts allerdings viele Spiele die jegliche modifikation (also auch injectede DLL's) als Cheat erkennen und dann gibt's nen Permban.
Hat jemand Erfahrung hiermit, ob das hier trotzdem klappt (ohne dass hier irgendein Programm namens Punkbuster oder VAC nachher meint: ah du cheater, raus hier)?

habs jetzt erstmal runtergeladen... ist ja nur eine .exe und .dll Datei... kein sourcecode?!
und bitte nicht heulen dass ich hier in einen 5 Jahre alten Thread poste.
vlees91
  Mit Zitat antworten Zitat
Benutzerbild von c113plpbr
c113plpbr

Registriert seit: 18. Nov 2003
Ort: localhost
674 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Screenshot mit DirectX

  Alt 26. Jan 2009, 23:58
Zitat von vlees91:
erstmal vorab: Ich habe mir dieses Beispiel noch nicht angesehen aber wenn ich das richtig lese wird eine DLL in die DirectX Anwendung injected?
Genau so ist es. Die Anwendung wird dazu „gezwungen" meine DLL zu laden und den darin enthaltenen Code auszuführen. Dieser modifiziert Speicherstellen der DX-DLL so, dass bestimmte Funktionen umgeleitet werden (gehookt), und somit an bestimmten Stellen durch Funktionen meiner DLL „erweitert" werden.
Zitat von vlees91:
Dummerweise gibts allerdings viele Spiele die jegliche modifikation (also auch injectede DLL's) als Cheat erkennen und dann gibt's nen Permban.
Hat jemand Erfahrung hiermit, ob das hier trotzdem klappt (ohne dass hier irgendein Programm namens Punkbuster oder VAC nachher meint: ah du cheater, raus hier)?
Ich will für nichts garantieren, aber eigentlich tun meine DLL's nicht mehr als Fraps oder XFire, d.h. eigentlich wird sowas schon geduldet.
Zitat von vlees91:
habs jetzt erstmal runtergeladen... ist ja nur eine .exe und .dll Datei... kein sourcecode?!
und bitte nicht heulen dass ich hier in einen 5 Jahre alten Thread poste.
Ich hab den Code zu exakt diesen Beispiel grad ned da, aber das Beispiel ist mithilfe von madCodeHook geschrieben. Bei dieser Bibliothek ist ein DX-Hook als Beispiel dabei. Einfach mal runterladen und anguggen.

mfg, Philipp
Philipp
There is never enough time to do all the nothing you want.
*HABENWILL*
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz