Einzelnen Beitrag anzeigen

HolgerX

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

AW: Taking screenshot behind the form using magnification

  Alt 11. Feb 2018, 13: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