GUI auf Screenshots ausblenden

  • Hallo allerseits,

    ich bin auf der Suche nach einer Möglichkeit, eine von meinem Programm erstellte GUI auf Screenshots auszublenden.

    Bei meinen bisherigen Recherchen bin ich auf die Funktion _WinAPI_SetWindowDisplayAffinity gestoßen. Diese erzeugt jedoch auf Screenshots einen schwarzen “Kasten“ anstelle des Fensters. Stattdessen würde ich gerne diesen schwarzen Ausschnitt transparent machen, dass die GUI auf dem Screenshot quasi unsichtbar ist.

    Wahlweise würde ich auch gern andere Möglichkeiten nutzen, um Grafiken/Text auf dem Bildschirm anzuzeigen, die auf Screenshots nicht sichtbar sind.

    LG MM :)

  • Minimiere einfach deine GUI vor dem ScreenShot, dann ist sie auch nicht zu sehen. WinSetTrans ist die andere Möglichkeit, WinMove an Koordinaten weit außerhalb des sichbaren Bereiches die 3.

  • @autoBert: Diese Möglichkeiten sind mir bekannt, jedoch soll das auch bei Screenshots durch fremde Anwendungen funktionieren.

    _WinAPI_SetWindowDisplayAffinity klappt ja auch bei Fremdprogrammen (nur mal z.B. Snipping Tool und Druck-Taste). Bei GUISetState, WinSetTrans, etc. muss ich hingegen wissen, WANN der Screenshot gemacht wird.

    Ich hoffe, das verdeutlicht mein Problem etwas besser :)

  • _WinAPI_SetWindowDisplayAffinity`verhindert daß eine GUI gecaptured wird. Den Effekt hast du ja beschrieben:

    Diese erzeugt jedoch auf Screenshots einen schwarzen “Kasten“ anstelle des Fensters.

    Ich kenne nur zwei Möglichkeiten eine GUI die gecaptured werden soll schnell ausblenden:

    • Wenn der Benutzer den ScreeShot anstößt, kann er vorher dafür sorgen das die gewünschte GUI kurz nicht sichtbar ist.
    • ein Hotkeyset auf die Drucktaste um eine der genannten Aktionen ein zu leiten, den ScreenShot zu veranlassen und die Aktion wieder rückgängig zu machen. Dies nützt nichts bei fremd Programme (vornehme Umschreibung für Spyware), die ohne Vorwarnung einen ScreenShot machen.

    Was auf dem Screen sichtbar ist kann gecaptured werden bzw. erzeugt ein schwarzes Rechteck.

  • Okay, ich hatte halt gehofft, dass man das schwarze Rechteck irgendwie ausblenden kann. Und das ohne jedes mögliche Screenshot-Programm zu betrachten bzw. ohne dass der Benutzer die GUI manuell ausblenden muss.

    Auf jeden Fall trotzdem danke, autoBert!

    Vielleicht hat ja jemand doch noch eine andere Idee :)