![]() |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Zitat:
So kannst du sehen wo du dich gerade befindest. Siehe Pic. Aber! Wie Luckie schon sagt! Überdenke nochmal dein Konzept.
Delphi-Quellcode:
Was glaubst du wessen DC du da in Anspruch nimmst?
DC:=GetDC(0);
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 |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Zitat:
Zitat:
Zitat:
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. Zitat:
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? |
AW: Bildschirmfoto knipst nicht alles
Zitat:
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. ![]() Zitat:
Zitat:
Es reicht wenn man sich das Bitmap direkt vom DC holt Da muss man nix rausfiltern.
Delphi-Quellcode:
HBitmap(GetCurrentObject(DC, OBJ_BITMAP));
Zitat:
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:
Zitat:
Sorry! Ich wollte dir nicht zu nahe treten, mach wie du willst. Bin erste mal raus. (Dachte du wolltest etwas dabei lernen) gruss |
AW: Bildschirmfoto knipst nicht alles
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. |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Dann hole dir doch direkt das Bitmap vom DC was gibt es da raus zu filtern. Habe dir doch gezeigt wie es geht.
Delphi-Quellcode:
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 |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Danke nochmals!:thumb: |
AW: Bildschirmfoto knipst nicht alles
emm
Zitat:
Delphi-Quellcode:
BitBlt(Bmp.Canvas.Handle, 0, 0, Width, Height, DC, 0, 0, SRCCOPY or CAPTUREBLT);
mit
Delphi-Quellcode:
Grüsse Mavarik
Const
CAPTUREBLT = $40000000; |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Zitat:
Habe ich noch nie verwendet. ![]() Denke das kann man getrost weglassen. gruss |
AW: Bildschirmfoto knipst nicht alles
Zitat:
Keine Ahnung ob das auch für andere Inhalte gilt, hab ich noch nicht getestet. Mavarik |
AW: Bildschirmfoto knipst nicht alles
Zitat:
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 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