Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

Screenshot eines anderen Programmes mit wm_print

  Alt 8. Jun 2006, 10:09
Hallo,

ich versuche mit folgendem Quelltext ein Screenshot eines anderen Programmes zu machen. Leider bleibt mein Bild leer. Muss ich das Handle unbedingt im anderen Prozess erzeugen oder sorgt SendMessage dafür das dieses Handle im anderen Prozess gültigkeit erlangt (wie es bei wm_copydata dafür sorgt das die Daten im anderen Adressraum gültig sind)?
Delphi-Quellcode:
  GetWindowPlacement(lHandle, @lPlacement);
  lRect := lPlacement.rcNormalPosition;

  lBitmap := TBitmap.Create;
  lBitmap.Height := lRect.Bottom - lRect.Top + 1;
  lBitmap.Width := lRect.Right - lRect.Left + 1;
  SendMessage(lHandle, WM_PRINT, Integer(lBitmap.Canvas.Handle), PRF_ERASEBKGND or PRF_CLIENT or PRF_CHILDREN);
  lBitmap.SaveToFile('d:\ab1.bmp');
  lBitmap.Free;
[Edit]
Mit der Funktion PrintWindow funktioniert es. Mich würde jedoch trotzdem interessieren warum es so wie ich es versucht hab nicht funktioniert.
[/Edit]
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat