![]() |
Screenshot von verstecktem Fenster erzeugen
Mit dieser Funktion kann man einen Screenshot eines Fensters machen, auch wenn dieses verdeckt oder versteckt ist.
Delphi-Quellcode:
Die Funktion erwartet zwei Parameter:
function ScreenshotHidden(wnd: HWND; const bmp: TBitmap): Boolean;
var rec: TRect; //zum Zwischenspeichern der Fenstergröße dllh: THandle; //Handle der user32.dll //Prototyp der verwendeten Funktion PrintWindow: function(sHandle: HWND; dHandle: HDC; nFlags: UINT): BOOL; stdcall; begin Result := False; //Rückgabewert initialisieren dllh := GetModuleHandle(user32); //dll dynamisch laden... if dllh <> 0 then begin @PrintWindow:= GetProcAddress(dllh , 'PrintWindow'); //die Funktionsadresse aus der Dll laden... if @PrintWindow <> nil then begin GetWindowRect(wnd, rec); //Größe des Fensters auslesen... bmp.Width := rec.Right - rec.Left; //...und die Bitmap-Größe anpassen bmp.Height := rec.Bottom - rec.Top; bmp.Canvas.Lock; //Zugriff auf den Canvas für andere Threads blockieren try result := PrintWindow(wnd, bmp.Canvas.Handle, 0); //Das Fenster zeichnet sich //selbst in das HDC des Bitmaps finally bmp.Canvas.Unlock; //Zugriff wieder erlauben end; end; end; end; wnd - Handle des Fensters, das kopiert werden soll bmp - Bitmap, in das der Screenshot gespeichert wird Aufrufen kann man die Funktion z.B. so: (Screenshot von Notepad machen)
Delphi-Quellcode:
Ich habe lange nach so etwas gesucht und hoffe, es ist für noch jemanden hier nützlich ;)
var
wnd: HWnd; begin wnd := FindWindow('Notepad',nil); //Handle vom Notepad-Fenster ScreenshotHidden(wnd, Image1.Picture.Bitmap); Image1.Invalidate; end; Chris [edit=Daniel G]Code formatiert Mfg, Daniel G[/edit] [edit=Daniel G]toms Hinweis ergänzt Mfg, Daniel G[/edit] |
Re: Screenshot von verstecktem Fenster erzeugen
toms weißt auf Folgendes hin:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz