Guten Abend,
ich bin seit einiger Zeit damit beschäftig ein kleines Tool "zum Erstellen von Screenshots für unterschiedlichen Situationen" zu entwerfen. Die Funktionalität des Programms ist gegeben.
Eine Funktion davon ist es bspw. ein Bild von einem bestimmten Windows Element (Fenster, Tab, Toolbar, etc.) zu erstellen. Dabei fährt man bei gedruckter Maus über das Control und ein Rahmen wird darum gezeichnet. Beim Loslassen wird ein Bild vom gewählten Bereich erstellt.
Genau das ist aber mein Problem: Ich möchte nicht mit gedrückter Maus diese Aktion durchführen, da es einfach unpraktisch ist. Natürlich ist es möglich das Ganze währenes des MouseMove durchzuführen, dann ensteht aber ein großes Problem mit dem Zeichnen des Rahmens. Da ich auf den Desktop zeichne und viele Elemente ein Hover-Effekt haben, wird mein Rahmen gezeichnet und durch den Hover-Effekt zerstört bzw. im schlimmsten Fall zerhackt. Beim Wechsel in ein anderes Element funktioniert so auch nicht mehr das Überzeichnen, da teilweise kein Rahmen mehr vorhanden ist und somit an verschiedenen Stellen ein Rahmen gezeichnet wird an denen eigentlich kein Rahmen mehr vorhanden ist.
Ich suche also ein Lösungsansatz, der es mir ermöglicht Rahmen um die Elemente beim normalen MouseMove zu ziehen ohne das die Elemente meine Mausbewegung mitbekommen und darauf mit Hover-Effekten reagieren.
Ich hatte spontan "Hardcopy" installiert und gesehen, das bei gleicher Funktion der Desktop bzw. die Bildschirmausgabe angehalten wird. Kein Element bewegt sich mehr. Beim Überfahren kann man so ganz einfach die Elemente markieren ohne das eines reagiert. Die Bilder im Anhang zeigen das Resultat beim Überfahren.
Ich frage mich das funktionert. Kann man den Desktop bzw. die Bildschirmausgabe so anhalten bzw. die Ausgabe sogar sperren?
Ich hatte mir überlegt, dass hier ein Screenshot vom gesamten Desktop gemacht wird und mir dann in einem Vollbildfenster angezeigt wird. Wenn das der Fall sein sollte, muss aber über meine Mausposition das
Handle des Controls hinter dem gezeigten Fenster ermittelt werden, doch wie macht man das?
Da es Hardcopy kann, muss es eine Lösung geben, welche ist die Frage. Hat dies jemand schon gemacht?
Gruß
Marcel