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 5. Jun 2018
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    
EWeiss
(Gast)

n/a Beiträge
 
#31

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 06:37
Zitat:
Auch ein AnimateWindow kann nichts dagegen machen.
Ist mir jetzt schleierhaft was das aufnehmen eines Hintergrund in irgendeiner Form mit AnimateWindow zu tun hat.
Zitat:
ps: über CopyRect() hol ich mir den Inhalt
Es wäre vielleicht ratsam erst einen Rahmen um das entsprechende Objekt zu zeichnen und erst dann aufzunehmen.
So kannst du sehen wo du dich gerade befindest.
Siehe Pic.

Aber!

Wie Luckie schon sagt!
Überdenke nochmal dein Konzept.
DC:=GetDC(0); Was glaubst du wessen DC du da in Anspruch nimmst?
Und warum du den Desktop nicht ignorieren kannst bei der Aufnahme?
Zudem GetDC(0) für eine ScreenShot Anwendung ist eine schlechte Wahl.

Mitunter wäre es ein einfaches.. dir das Bitmap direkt vom DC zu holen ohne den ganzen Umweg über CopyRect, ClipBord, Hintergrund schwarz machen und die anderen Sache die du dir so ausdenkst.
Und wenn du Qualität haben möchtest kommst du nicht Drumherum vorher ein 32BItDC zu erstelle.
Es ich schön mit unter vorgefertigte Schnipsel zu verwenden und einfach... aber du lernst nichts dabei.
Du weist nicht warum mache ich dies oder das welche Auswirkung kann dies oder jenes haben.
Sorry du stellst hier fragen bekommst Antworten aber du Entwickelst dein Projekt nicht auf dieser Basis und du verstehst nicht wirklich was du da tust oder hast
du dir jede Definition, Funktion, Variable einmal angeschaut welche Auswirkung diese haben?
Wenn ja dann habe ich nichts gesagt.
Wenn nicht tja dann hast du nichts dabei gelernt.

Beim ganzen Thread habe ich eigentlich nicht verstanden um was es dir eigentlich geht.
Du willst den Desktop knipsen ok.. kein Problem das ist ein 4 Zeiler an Code.
Du willst den Clientbereich knipsen? Ist auch nicht mehr an aufwand.
Insgesamt verstehe ich deine Probleme nicht.

gruss

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

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

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 08:26
DC:=GetDC(0); Was glaubst du wessen DC du da in Anspruch nimmst?
Zitat:
If this value is NULL, GetDC retrieves the DC for the entire screen.
Dieses.
Es wäre vielleicht ratsam erst einen Rahmen um das entsprechende Objekt zu zeichnen und erst dann aufzunehmen.
Das probierte ich zu beschreiben dass das meine nächsten Schritte sind.
Wie Luckie schon sagt! Überdenke nochmal dein Konzept.
Kein Scherz, ich sehe bei mir keine Nachricht von Luckie, wo soll er sowas geschrieben haben?
Hab Verstanden was Du meinst aber da bin ich dann wieder beim Source von Post #1 was ja nicht klappt.
Falls selber noch nicht getestet, beim Post #1 ist die Umsetzung so:
Kompiliere und starte es, öffne das Fenster was Du knipsen willst, zurück zu mein Ding und auf knipsen klicken.
Ja sehr unzuverlässig aber nun habe ich eine Prozessliste, sehr zuverlässig.
Beim ganzen Thread habe ich eigentlich nicht verstanden um was es dir eigentlich geht.
Es geht mir nicht ums Kekse backen, ich will ein Fenster fotographieren so wie es mir auch der Desktop präsentiert.
Unabhängig ob das Fenster irgendwelche Tricks anwendet so das ein Knipsen erschwert wird.
Beispiele: Dein OTTB Layered oder was auch immer für DirectX/OpenGL Overlays, alles soll klappen.


Bin bald fertig.
Ps: Ja das Du das was ich in sehr vielen Zeilen mit nur einem Befehl hinbekommst weil Du weißt was Du tust ist mir klar, da mir die Erfahrung fehlt und ich keine Ahnung davon habe mache ich es nunmal so wie ich es mache.
Ich finde es für mich da es Neuland ist ein nettes Freizeitprojekt.

edit
Ps: Frage: Wenn Du selbst Dein OTTB mit deiner selbstgebackenen Knipsmethode knipst und da nen Rahmen malst, wo issn der Rahmen dann?
Gruß vom KodeZwerg

Geändert von KodeZwerg (30. Mai 2018 um 09:13 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#33

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 09:11
Zitat:
Dieses.
Nein.. Es gibt das DC des Virtuellen Bildschirm (Screen) zurück.
Und was machst du nun wenn du mehrere Monitore verwendest du glaubst das es dann immer noch funktioniert?
Wenn du also mit mehreren Monitoren arbeitern willst solltest du das verwenden.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Zitat:
Kein Scherz, ich sehe bei mir keine Nachricht von Luckie, wo soll er sowas geschrieben haben?
Er sagte nicht das du dein Konzept überdenken sollst.
Zitat:
Wie "Hintergrund herausfiltern"? Wenn du mit dem DC von dem betreffenden Fenster arbeitest, sollte auch nur das Fenster in das Bitmap kopiert werden.
Das sagte Ich. Denn ich verstehe deine Herangehensweise leider auch nicht.
Es reicht wenn man sich das Bitmap direkt vom DC holt
Da muss man nix rausfiltern.
HBitmap(GetCurrentObject(DC, OBJ_BITMAP));
Zitat:
Es geht mir nicht ums Kekse backen, ich will ein Fenster fotographieren so wie es mir auch der Desktop präsentiert.
Aha.. OK ein vier\fünf Zeiler also.
1. GetDesktopWindow
2. GetDC\CreateDC
3. GetWindowRect
4. StretchBlt via BitBlt.
5. ReleaseDC

Das knipst alles incl. die Videos in meinem Player(DirectX) und Layered Windows.
Zitat:
da mir die Erfahrung fehlt und ich keine Ahnung davon habe mache ich es nunmal so wie ich es mache.
Zitat:
Frage: Wenn Du selbst Dein OTTB mit deiner selbstgebackenen Knipsmethode knipst und da nen Rahmen malst, wo issn der Rahmen dann?
Wo er hingehört um OTTB.

Sorry! Ich wollte dir nicht zu nahe treten, mach wie du willst.
Bin erste mal raus. (Dachte du wolltest etwas dabei lernen)

gruss

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

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

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 09:26
Och menno, Ok, Danke auf jeden fall für die korrekte heran gehens weise, ich versuche es so wie Du es beschreibst umzusetzen.

edit
Ich habe gerade dein update mit Bild gesehen, da ist doch auch Desktop Hintergrund, das meinte ich mit rausfiltern bei obiger Aussage.
Gruß vom KodeZwerg

Geändert von KodeZwerg (30. Mai 2018 um 09:28 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#35

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 09:34
Och menno, Ok, Danke auf jeden fall für die korrekte heran gehens weise, ich versuche es so wie Du es beschreibst umzusetzen.

edit
Ich habe gerade dein update mit Bild gesehen, da ist doch auch Desktop Hintergrund, das meinte ich mit rausfiltern bei obiger Aussage.
OK dies Antwort noch.
Dann hole dir doch direkt das Bitmap vom DC was gibt es da raus zu filtern.
Habe dir doch gezeigt wie es geht.
HBitmap(GetCurrentObject(DC, OBJ_BITMAP));
Aber ehrlich? Frage mich was es dir bringen soll ob ich nun den Hintergrund des Desktop im Bereich von OTTB sehe
oder aber nachher anstelle dessen einen weißen\schwarzen oder was auch immer Hintergrund habe ist gehüpft wie gesprungen.

Das einzige was du dann noch machen könntest das Bild als PNG kopieren und den schwarzen\weißen Hintergrund dann ausschneidest.
Aber das ist wieder höhere Mathematik

gruss

Geändert von EWeiss (30. Mai 2018 um 09:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 09:45
Habe dir doch gezeigt wie es geht.HBitmap(GetCurrentObject(DC, OBJ_BITMAP));
Ja ich bin da noch nicht so fit, bedankt habe ich mich bereits und versuche es umzusetzen. Für Dich ist das alles so selbstverständlich weil Du so tief in der Materie drinnen steckst, ich muss das alles nun Sinnvoll umsetzen und natürlich hier und da MSDN lesen wie/womit/ausgabe etc ich aufrufe damit am Ende das rauskommt was ich wollte, ein Bild vom Fenster mit egal was für Content. Du hast ja heran gehens weise nun sehr deutlich beschrieben, ich bin dabei.
Danke nochmals!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#37

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 10:57
emm


BitBlt(Bmp.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);

BitBlt(Bmp.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY or CAPTUREBLT);
mit

Delphi-Quellcode:
Const
   CAPTUREBLT = $40000000;
Grüsse Mavarik
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#38

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 11:13
emm


BitBlt(Bmp.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY);

BitBlt(Bmp.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY or CAPTUREBLT);
mit

Delphi-Quellcode:
Const
   CAPTUREBLT = $40000000;
Grüsse Mavarik
Zitat:
Includes any windows that are layered on top of your window in the resulting image. By default, the image only contains your window. Note that this generally cannot be used for printing device contexts.
Kann da keinen besonderen Vorteil drin erkennen.
Habe ich noch nie verwendet.

https://stackoverflow.com/questions/...y-of-the-targe
Denke das kann man getrost weglassen.

gruss

Geändert von EWeiss (30. Mai 2018 um 11:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.144 Beiträge
 
Delphi 10.3 Rio
 
#39

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 11:32
Kann da keinen besonderen Vorteil drin erkennen.
Habe ich noch nie verwendet.
Denke das kann man getrost weglassen.
Bei einem "Foto" des eigenen Fensters ggf. ja, aber wenn man z.B. die Gadgets vom Vista-Bildschirm auch im Image haben möchte, geht es nicht ohne...

Keine Ahnung ob das auch für andere Inhalte gilt, hab ich noch nicht getestet.

Mavarik
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#40

AW: Bildschirmfoto knipst nicht alles

  Alt 30. Mai 2018, 11:35
Kann da keinen besonderen Vorteil drin erkennen.
Habe ich noch nie verwendet.
Denke das kann man getrost weglassen.
Bei einem "Foto" des eigenen Fensters ggf. ja, aber wenn man z.B. die Gadgets vom Vista-Bildschirm auch im Image haben möchte, geht es nicht ohne...

Keine Ahnung ob das auch für andere Inhalte gilt, hab ich noch nicht getestet.

Mavarik
Ja das habe ich gelesen wenn es um Sprite auf dem Window geht (Widget)
Aber bei mir werden die auch ohne diese Flag aufgenommen.. siehe Shot.

Nun gut versuchen kann er es ja mal.. Nachteile wird er dadurch nicht habe.
Danke!

gruss

Geändert von EWeiss (11. Jul 2019 um 16:51 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 7   « Erste     234 56     Letzte »    


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 19:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz