Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#66

AW: Bildschirmfoto knipst nicht alles

  Alt 3. Jun 2018, 09:30
So und wenn jetzt jemand ein ähnliches Problem hat, sich durch diese 7 Seiten kämpft und am Ende feststellt, es war "alles Murks" - ist das unbefriedigend. Wie hast Du es denn nun gelöst?
Eigentlich habe ich vorgehabt den Source sobald der Richtig läuft zu teilen oder wird jetzt dieser Thread geschlossen?
Für Ungeduldige hier eine Kurzanleitung wie man ein Fenster knipst mit egal was für Content ohne störenden Hintergrund/andere Fenster.
Grundzutaten: 2 Fenster (Forms, Window) - 1. Form = GUI, 2. Form = leere Borderless Form, Vorgehensweise:
Haupt-Knips-Fenster wegmachen = ShowWindow(Application.Handle, SW_HIDE);
GetWindowRect() um Bildschirm Koordinaten von Quelle zu erhalten
die leere Borderless Form mit den Koordinaten füttern, einfärben und Anzeigen (hier war die ganze Zeit mein murks Denkfehler, ich malte ein Rechteck, das war total falsch da der Desktop sobald ich Quelle auf Screen hole ein Invalidate o.ä. ausführt und mein Rechteck weg ist bzw auch Negative Auswirkungen hatte!)
mit "if IsIconic(Win) then ShowWindow(Win, SW_RESTORE) else SetForegroundWindow(Win);" das Quell-Fenster in Vordergrund pumpen (über mein Borderless Window sozusagen)
"DC := GetDc(GetDesktopWindow);" verwenden um Zugang zu allem zu erhalten.
Knipsen wie gehabt = BitBlt(tBmp.Canvas.Handle, 0, 0, Width, Height, Dc, Left, Top, SRCCOPY or CAPTUREBLT);
Aufräumen: ReleaseDc(Win, dc); frmClear.Hide; SetForegroundWindow(Application.Handle);

Das war die Kurzfassung die dennoch alles an Informationen enthält um es selber so hinzubekommen wie es das Bild zeigt.

Wer Fragen hat die beantworte ich gerne. Wer will kann auch mein jetzigen Source bekommen, aber da sind noch viele viele Fehler enthalten, ich muss das Knipsen nochmal ändern, mein Fokus lag darauf das ich OTTB perfekt knipsen kann, das Ziel ist gelungen aber andere Fenster zicken noch rum.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat