Einzelnen Beitrag anzeigen

Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#4

Re: Screenshot eines anderen Programmes mit wm_print

  Alt 8. Jun 2006, 15:00
Ich habe das vor einiger Zeit mal mit DLL injection gelöst.
Ich hänge dir den Code mal an, aber Achtung: Das ganze ist alles andere als sauber programmiert! Das war so ein, "so lange basteln bis es funktioniert" - Ding.

An einer Lösung ohne DLL wäre ich aber auch jederzeit interessiert, nur wie erzeugt man ein Bitmap in einem anderen Prozess, ohne darin zu laufen?

PS. Aufruf für ein einzelnes Fenster:

function doSnapshot( const handle: integer; const usePaint, doEnumAfter: Boolean; const dllFilePath: string): TBitmap;

handle: logisch
usePaint: true = WM_PAINT / false = WM_PRINT
doEnumAfter: Wenn true enumchildwindows und nochmals WM_PAINT an diese senden
dllFilePath: Pfad zur DLL
result: NIL wenn Fehler, ansonsten das erstellte TBitmap

Die anderen Funktionen sind um Screenshots von ganzen Applikationen zu machen. Die Unit verwendet noch eine Mainfunc, die ich aber nicht includen werde, musst sie dir halt umbasteln wenn du sie verwenden willst.
Angehängte Dateien
Dateityp: zip remotesnapshot_670.zip (77,5 KB, 84x aufgerufen)
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat