Einzelnen Beitrag anzeigen

Benutzerbild von KahPee
KahPee

Registriert seit: 12. Mai 2009
214 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Screenshot von dem Clienten eines fremden Fensters mache

  Alt 29. Jan 2010, 18:58
So funktioniert es. Diese Prozedur macht jetzt einen Screenshot vom Clienten und nicht vom Fenster!

Delphi-Quellcode:
// *** Erstellt von einem Clienten ein ScreenShot ***
function TForm1.FormularSaveScreenShot(FileName: String; h : hWnd): Boolean;
var
  Rec: TRect;
  iWidth, iHeight,left,top: Integer;
  window: TWindowInfo;

begin
  GetWindowInfo(h,window);


  with TBitmap.Create do try
    GetWindowRect(h, Rec);

    iWidth := window.rcclient.right-window.rcClient.left+1;
    iHeight := window.rcclient.bottom-window.rcClient.top+1;
    left:=window.rcWindow.Left-window.rcclient.Left;
    top:=window.rcwindow.Top-window.rcClient.top;
    Width := iWidth;
    Height := iHeight;

    BitBlt(Canvas.Handle, left, top, iWidth-left-1, iheight-top-1, GetWindowDC(h), 0, 0, SRCCOPY);
    
    Result := True;

    try SaveToFile(Filename) except Result := False end;
  finally
    ReleaseDC(h, GetWindowDC(h));
    Free;
  end;
end;
Der Hinweis von oben war gut.. der hat mich auf die richtige Spur gebracht
  Mit Zitat antworten Zitat