Screenshot von nicht sichtbaren oder verdeckten Fenstern?!



  • WM_PAINT hat *keine* Parameter. Deine alte Doku ist alt...

    Auf reaktion vonWM_PAINT muss die Anwendung "BeginPaint" aufrufen, welches dann *intern* den HDC erzeugt!
    Somit kannst Du durch senden von WM_PAINT nichts erreichen.



  • fuzolan schrieb:

    Ich habe schonmal ein Desktopmanager gesehen der dies konnte. Müsste also gehen, aber nur wie?!

    Wenn das die Tatsache ist, dann muß es eine Möglichkeit geben.
    Wie Jochen schon schrieb, mit dem zweiten, verdeckten (oder virtuellen) Desktop könnte es klappen.

    Alternativ statt dem zweiten Desktop, einen zweiten virtuellen Monitor verwenden. (Ich weiß, das wäre 'ne ordentliche Programmieraufgabe gewesen bis das in allen Belangen fehlerfrei funktioniert, es geht erstmal nur darum, welche Ideen einem so einfallen... 😃 )

    Ein weiterer Ansatzpunkt: Dieser Desktopmanager macht während der ganzen Laufzeit im Hintergrund periodisch einen Screenshot von allen sichtbaren Fenstern, und speichert diese intern.
    Sobald der Desktopmanager aufgerufen wird, blendet er die jeweils letzten Screenshots ein. Damit könnte es evtl. auch funktionieren.
    Nachteil ist natürlich, daß der Inhalt des Screenshots von mittlerweile unsichtbaren Fenstern nicht mehr dem aktuellen Stand entsprechen kann, als wenn das Fenster immer noch sichtbar wäre. Aber immer noch besser als nichts 😉

    Martin



  • Geht das nicht im Groben so:

    Benutzerdefinierte Message MY_WM_PAINT definieren.
    Das HDC hdcDest wo der Screenshot reingeblittet werden soll ( BitBlt )
    in wParam verpacken, das HDC hdcSrc des begehrten Fensters in lParam verpacken.
    SendMessage an das für das Zeichnen zuständige Fenster abschicken.

    ?



  • r3d4 schrieb:

    Benutzerdefinierte Message MY_WM_PAINT definieren.

    Das setzt aber voraus, daß alle Applikationen diese Message MY_WM_PAINT kennen müssen!
    Und somit funktioniert Dein Ansatz logischerweise nur bei eigenen, selbstgeschriebenen Applikationen.

    Oder habe ich da was mißverstanden?

    Martin



  • Lese gerade, geht doch nicht wie ich dachte. Hier der Artikel dazu:
    http://www.fengyuan.com/article/wmprint.html



  • Bei den Powertoys gibt es doch ne Alternative für alt+tab
    Hier werden alle Fensterinhalte auch recht fix angezeigt.
    Nur wie?! 🙂





  • Wie macht Vista das denn? Da kann bekommt man ja eine Art grafischen Tooltip, wenn man in der Taskleiste über eine minimierte Anwendung fährt. Geht das auch über einen zweiten Desktop?



  • Vermutlich speichert er sich beim *deaktivieren* des Fensters den Inhalt... sowas hab ich zumindest irgendwo gelesen...



  • Jochen Kalmbach schrieb:

    Vermutlich speichert er sich beim *deaktivieren* des Fensters den Inhalt... sowas hab ich zumindest irgendwo gelesen...

    Vielleicht vorhin in meinem Post in diesem Thread? 🕶
    (Ok, es spielt eigentlich ja keine Rolle, ob periodische Screenshots, oder erst beim Minimieren, wenn man von periodischer Rechenleistung mal absieht... )

    Martin


Anmelden zum Antworten