Hallo zusammen,
ich kenne mich in dem Bereich leider zu wenig aus und habe nun schon einiges gesucht/probiert.
Folgendes nutze ich:
Delphi-Quellcode:
//globale variable
g_Bitmap_for_Thumbnail_Preview: TBitmap;
...
procedure ScreenShotActiveWindow(my_Image: TBitmap);
var
c: TCanvas;
R, t: TRect;
h : THandle;
begin
c := TCanvas.Create;
c.Handle := GetWindowDC(GetDesktopWindow);
h := GetForeGroundWindow;
if h <> 0 then
GetWindowRect(h, t);
try
R := Rect(0, 0, t.Right - t.Left, t.Bottom - t.Top);
my_Image.Width := t.Right - t.Left;
my_Image.Height := t.Bottom - t.Top;
my_Image.Canvas.CopyRect(R, c, t);
finally
ReleaseDC(0, c.Handle);
c.free;
end;
end;
...
//Timer
procedure Tfrm_Main.tmr_ScreenshotTimer(Sender: TObject);
begin
if (frm_Main.WindowState <> wsMinimized) and (gb_Hauptform_Aktiv) then begin
ScreenShotActiveWindow(g_Bitmap_for_Thumbnail_Preview);
end;
end;
Ich mache also über einen Timer einen Screenshot von meinem Programm.
In dem Programm kann man mehrere andere Forms aufrufen.
Und nun mein Problem.
Sobald ich eine andere Form aus dem Hauptprogramm aufgerufen habe, erscheint auf dem Screenshot dauerhaft weiterhin die Hauptform, aber auch die anderen Forms!
Tja, und da komme ich momentan nicht weiter.
Hat hier jemand einen Tipp für mich?
Edit: Die "Unter"-Forms schließe ich [über
Close()], trotzdem sind *danach* diese "Unter"-Forms dauerhaft über der Hauptform auf dem Screenshot zu sehen, obwohl ja nur die Hauptform für den User zu sehen ist.
Vielen Dank schon mal vorab!