Registriert seit: 12. Mai 2009
214 Beiträge
Turbo Delphi für Win32
|
Re: Screenshot von dem Clienten eines fremden Fensters mache
29. Jan 2010, 19: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
|
|
Zitat
|