Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Das Desktopbild unter meinem Formular (https://www.delphipraxis.net/167037-das-desktopbild-unter-meinem-formular.html)

Popov 10. Mär 2012 12:59

Das Desktopbild unter meinem Formular
 
Trotz dem ich mich schon mal mit so einer ähnlichen Frage ins Fettnäpfchen gesetzt habe und eine einfache Funktion als Lösung bekam, frage ich trotz, vielleicht gibt es auch hier eine einfache Funktion.

Das ganze ist nur eine Idee, kein richtiges Programm, mehr eine Machbarkeitübung. Ich hab es vor Monaten mal gesehen und seit dem fällt es mir immer wider ein. Und zwar will ich de facto ein Screenshot von dem Bereich unter meinem Fenster machen. Ich hab mir das eigentlich einfacher vorgestellt als es dann tatsächlich wurde. Was ich gemacht habe war zuerst alle sichtbaren Fenster zu ermitteln, dann deren Rect Bereiche, dann überprüft ob die sich mit meinem Fenster überschneiden und wenn ja, Screenshot von dem überschneidendem Bereichen gemacht. Dann alle Screenshots passend zusammengefügt und fertig ist das Bild unter meinem Formular.

Das klappt auch, aber sehr sehr langsam. Wenn ich mein Fenster bewege, dann ruckelt es stark. Also viel mehr optimieren kann man da kaum. Ein wenig, aber das wird es nicht bringen.

Also entweder ist mein Ansatz falsch oder andere nutzen eine Funktion oder machen es ganz anders.

Sir Rufo 10. Mär 2012 14:04

AW: Das Desktopbild unter meinem Formular
 
Was heißt hier "andere"?
Was möchtest du denn eigentlich erreichen?

Eine Form auf dem Bildschirm z.B. mit einer Textverarbeitung und dann den Bereich darunter abfotografieren?

himitsu 10. Mär 2012 14:10

AW: Das Desktopbild unter meinem Formular
 
Der Desktop Window Manager von Vista und Win7 hält ja selber Screenshots von den sichtbaren Fenstern (visible und nicht minimiert), z.B. für dieses komische Win+Tab und die Taskleistenvorschaudinger.
Eventuell kann man diesen irgendwie nach seinen Bildern befragen?

newmusicslamer 10. Mär 2012 17:37

AW: Das Desktopbild unter meinem Formular
 
Du könntest vielleicht auf buttonclick die Form transparent machen und dann müsste man mit dieser Klasse einen Screenshot erstellen (ich habe sie zwar noch nicht ausprobiert, aber es sollte funktionieren!

Popov 10. Mär 2012 18:47

AW: Das Desktopbild unter meinem Formular
 
Zitat:

Zitat von Sir Rufo (Beitrag 1155802)
Was heißt hier "andere"?
Was möchtest du denn eigentlich erreichen?

Was man damit erreichen kann? Ich will damit vorerst nichts erreichen. Das ist einen Technik die ich das erste Mal vor etlichen Jahren in TV in einer Computersendung bei einer Bildschirmlupe gesehen habe. Und seit der Zeit beschäftigt mich die Machbarkeit. Es ist einfach so, dass hier der Bereich unter dem Fenster vergrößert wird, also muß der Bereich irgendwie ausgelesen werden. Und so wie ich es bis jetzt geht zwar, es ist aber nicht flüssig.

@newmusicslamer
Das habe ich schon schon früher getestet. Machbar ist es, auch flüssig, aber das Fenster flackert.

@himitsu
Ich schätze auch, dass Windows irgendwas da bietet, und wenn man sich überlegt, so verkehrt ist meine Idee auch nicht. Nur aus irgendeinem Grund langsam.

himitsu 10. Mär 2012 19:47

AW: Das Desktopbild unter meinem Formular
 
Windows bietet sogenannte Zugangsmöglichkeiten, z.B. über sogenannte Dupplicationstreiber, worüber man eine Kopie des Desktops bekommt. (mein kleiner USB-Beamer nutzt sowas)

Dann gibt es auch Möglichkeiten direkt in den Videopuffer zu schreiben, wie es z.B. bei Videos oft genutzt wird, wo man dann bei einem Screenshot vom Video nichts sieht.

Man könnte auch mit mehreren Desktops arbeiten, also einem Zweiten, wo man nur eine Kopie des eigentlichen Desktops anzeigt und dazu dann noch mehr, wie eben diese Lupe.

Oder man läßt sich alle Zeichenoperationen mitteilen, so wie es z.B. vom RDP genutzt wird.

jaenicke 11. Mär 2012 07:09

AW: Das Desktopbild unter meinem Formular
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal ein winziges Beispiel geschrieben, siehe Anhang. Das erhebt keinen Anspruch die beste Lösung zu sein, aber es funktioniert, vermutlich ab Vista. Unter alten Systemen wie XP funktioniert das nicht.
(Ich wollte damit gleichzeitig Generics für einen anderen Thread demonstrieren, deshalb der Record, eigentlich braucht man den natürlich nicht.)

Furtbichler 11. Mär 2012 07:18

AW: Das Desktopbild unter meinem Formular
 
Ich habe das mal so gelöst, das ich das Fenster unsichtbar mache, dann einen Screenshot anfertige und dann das Fenster wieder sichtbar mache. Ein Dreizeiler und man merkt es kaum.

jaenicke 11. Mär 2012 08:28

AW: Das Desktopbild unter meinem Formular
 
Die Lösung aus meinem Beispiel geht ja auch direkt. Da muss man nur noch an den Bildschirmrändern ein wenig prüfen, aber ansonsten funktioniert das doch so auch ohne derlei Tricks.

Popov 11. Mär 2012 10:12

AW: Das Desktopbild unter meinem Formular
 
Zitat:

Zitat von Furtbichler (Beitrag 1155920)
Ich habe das mal so gelöst, das ich das Fenster unsichtbar mache, dann einen Screenshot anfertige und dann das Fenster wieder sichtbar mache. Ein Dreizeiler und man merkt es kaum.

Wenn es nur um einen Screenshot geht, dann reicht ein Dreizeiler, da hast du Recht, aber bei einer Bildschirmluppe klappt es nicht, denn dann flackert es.

@Sebastian
Also bei XP funktioniert es auch, allerdings weiß ich nicht ob richtig. Bei mir wird der Bereich neben dem Fenster vergrößert. Um mir den Code anzugucken ist noch zu früh, das Gehirn ist noch nicht angelaufen.

Übrigens, ich hab ein wenig gesucht und so ein Teil gefunden: http://www.4neurons.com/other/Magnifying_Glass/ Da kann man sehen, dass es funktioniert. Schnell und ohne flackern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:23 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