AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Bildschirmfoto knipst nicht alles
Thema durchsuchen
Ansicht
Themen-Optionen

Bildschirmfoto knipst nicht alles

Ein Thema von KodeZwerg · begonnen am 29. Mai 2018 · letzter Beitrag vom 4. Jun 2018
Antwort Antwort
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#1

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 00:51
wenn ich OpenGL/DirectX Anwendungen starte und Knipse entstehen nur schwarze Bilder, gibts da ein Trick?
Ob dein anderes Problem dadurch auch behoben würde (ich vermute stark, ja), kann ich nicht sagen, aber bezüglich Hardware-beschleunigter Grafik sollte die Desktop Duplication API Abhilfe schaffen. Das ist der vorgesehene Weg ab Windows 8, um den Monitorinhalt abzugreifen. Ist zwar nicht ganz unkompliziert, aber es gibt eine ausführliche Demo Anwendung.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 01:03
Das könnte ich einbauen mit OSVersion Kontrolle, aber ich selbst benutze Windows 7.
Hast Du da eventuell noch eine Api auf die ich zurückgreifen könnte?
Danke für den Tipp Zacherl!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 01:15
Hast Du da eventuell noch eine Api auf die ich zurückgreifen könnte?
Vor der Desktop Duplication API ging der "korrekte" Weg über einen Mirror Driver. Für DirectX/GL bleibt dir ansonsten nur die Möglichkeit über Hooks (ist aber auch nur Murks). Ansonsten gibt es noch die MSDN-Library durchsuchenPrintWindow API. Hardware-beschleunigte Inhalte wirst du damit allerdings auch nicht screenshoten können.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 01:19
Ja ok, mit DX/GL das seh ich total ein und lass es mehr als außen vor.
PintWindow kenne ich auch noch nicht, da schau ich mal nach.
Ich glaube nicht das der TC hardwarebeschleunigung an den fehlenden Stellen macht, das muss eine andere Ursache haben.
Zacherl Danke nochmal, bei Problemem melde ich mich wieder!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Bildschirmfoto knipst nicht alles <GELÖST>

  Alt 29. Mai 2018, 01:34
PrintWindow ist für mich DIE LÖSUNG!!! Vielen lieben Dank!
Habs bereits erfolgreich eingebaut und es knippst den TC ohne fehlenden Bildinhalt!

Frage: Funktioniert PrintWindow auch noch mit Windows 10?

Delphi-Quellcode:
function MyPrintWindow(const Win: HWND = 0; var Bmp: TBitmap; const FullWindow: Boolean = True): Boolean;
var
  rect: TRect;
begin
  Result := False;
  if Win = 0 then Exit;
  if FullWindow then
   GetWindowRect(Win, rect)
   else
   Windows.GetClientRect(Win, rect);
  bmp.Width := rect.Right - rect.Left;
  bmp.Height := rect.Bottom - rect.Top;
  Result := PrintWindow(Win, Bmp.Canvas.Handle, 0) ;
end;
Mini-Upgrade, so wirds bei Bedarf ohne Fenster-Rahmen geknippst.

Ps: Der erste Parameter sollte ein Prozess-Handle sein was ein Window besitzt.
Gruß vom KodeZwerg

Geändert von KodeZwerg (29. Mai 2018 um 08:26 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 05:52
Verdammt noch mal eigentlich bin ich ja zu blöd für so was.
Aber trotzdem bei mir knipst alles und ich kann es sogar noch etwas verschönern.

Sorry das musste sein!

gruss

Geändert von EWeiss (11. Jul 2019 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 07:55
Du kannst es ja mit FullWindow = False mal probieren.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:19 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-2025 by Thomas Breitkreuz