AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Taking screenshot behind the form using magnification
Thema durchsuchen
Ansicht
Themen-Optionen

Taking screenshot behind the form using magnification

Ein Thema von victorlus · begonnen am 9. Feb 2018 · letzter Beitrag vom 11. Feb 2018
 
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
984 Beiträge
 
Delphi 6 Professional
 
#20

AW: Taking screenshot behind the form using magnification

  Alt 11. Feb 2018, 12:21
Hmm..


@EWeiss

Sorry, dass deine Programme anders funktionieren ist ja bereits hinreichend bekannt...
Weshalb diese kein WM_Paint beim Aufruf von PaintWindow erhalten, da musst du wohl die Fa. Microsoft befragen und nicht mein einfaches Testtool niedermachen.
Ganz nach dem Motto, wenn Du selber nicht weiter weist, machst Du alles nieder, mit was andere Versuchen zu helfen/Hinweise zu geben... (auch hinreichend bekannt..)


Mit Fenstern, welche mit normalen Windows GDI über die 'WINDOWS-API' PaintWindow gezeichnet werden (z.B. Notepad), funktioniert es....

Und auch wenn Du es mir nicht glauben willst:
Das, was umgangssprachlich als 'Desktop' betitelt wird, ist (seit Windows NT4/2000) ein Explorer-Fenster, welches als 'SHELL' von Windows gestartet wird! Dieses zeigt dir u.a. deine 'Desktop-Icons' an. Ohne diese 'SHELL' hast du einen nackten Bildschirm ohne Startmenu und Co..

Beschäftige dich mal mit der WIndows-API 'OpenDesktop', 'CreateDesktop', 'EnumDesktops', 'SetThreadDesktop'...
Damit kann man einen 'eigenen' virtuellen Desktop erstellen. Um hier Icons platzieren zu können oder ein Startmenü verwenden zu können, muss du hier (wie es Windows beim Ersten Desktop automatisch macht) ebenfalls einen Programm manager starten, wie z.B. den Explorer.exe.
Dieser verhält sich zu einem zusätzlich gestartetem Explorer anders (FullScreen, Borderless, Große Icons,...).


Weshalb beim 'PaintWindow' einige Bestandteile schwarz bleiben, wirst Du wohl ebenfalls entweder bei den Programmieren dieser Programme oder ebenfalls bei Microsoft anfragen müssen.

Denn 'PaintWindow' ist nur ein API-Aufruf. Was darin passiert, oder auch nicht, bestimmt Microsoft oder eventuell der Programmierer der Applikation, wenn er eine andere Option zum Zeichnen seines Applikationsfenster benutzt.


Bei DirektX ist es so, dass dieses das Malen (Stichwort Overlay!) selber erledigt und nicht unbedingt auf WM_PAINT oder andere 'Windows-Messages' reagiert.
Was anderes hatte ich auch nicht geschrieben, da ich mich in

2.)
Your Screenshoot of your Videoplayer didn't work, of course it use DirectX for the Videoplaying, which is NOT handle by Windows GDI and also NOT could redraw by Microsoft GDI! ('Overlayed Window').
auch nur auf deinen Videoplayer bezogen habe, der DirektX und co. verwendet.

Um einen vollständiges Bild von einem externen DirectX-Fenster zu erhalten ist ein höherer Aufwand notwendig.
(Nutze Google, um dich selber zu überzeugen.)


Wenn ich falsch liege, kann mich ja jemand anderes korrigieren, jedoch bitte nicht EWeiss..


Es ist schade, dass dieser Thread wieder so ausartet...
Deshalb ist in diesem Thread nun auch für mich Schluss und dem Threadersteller muss jemand anderes versuchen weiterzuhelfen...
  Mit Zitat antworten Zitat
 


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 13:41 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