Fragensteller
Bildschirm Farbinversion

Frage
-
Also gibt es eine Möglichkeit, mit vb den gesammten bildschirm ins Negativ zu stellen? Also entweder ist er im Negativ oder nicht, denn bei folgendem Code, wird einfach der gesammte Bildschirm umgekehrt(farbe):
Code von folgender Adrese: http://social.msdn.microsoft.com/Forums/de-DE/visualbasicde/thread/81cdb9a7-4562-4978-8ed8-8082d7fde7caPublic Class Form1 Private Declare Function InvertRect Lib "user32" (ByVal hdc As Integer, ByRef lpRect As Rect) As Integer Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Integer) As Integer Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Integer, ByRef lpRect As Rect) As Integer Private Declare Function GetDesktopWindow Lib "user32" () As Integer Private Structure Rect Dim Left As Integer Dim Top As Integer Dim Right As Integer Dim Bottom As Integer End Structure Private rct As Rect Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click GetClientRect(GetDesktopWindow, rct) InvertRect(GetWindowDC(GetDesktopWindow), rct) End Sub End Class
LG Yves Riedener
Alle Antworten
-
Hallo Yves,
Ja, wie der Code von Robert veranschaulicht wird hier schwarz, was weiß war ....
Ob das in jedem Fall die Komplementärfarben sind, kann ich nicht sagen, aber es erfüllte damals meine Anforderungen an das Programm.
Die Zielsetzung war die, dass nicht nur das aktive Fenster sondern der komplette Bildschirminhalt verändert wird.Aber wo befindet sich in deinem Beitrag nun die eigentliche Frage?
Also gibt es eine Möglichkeit, mit vb den gesammten bildschirm ins Negativ zu stellen?
Ja. Das Einfachste wird sein, du probierst es mal aus. Das ist mit Roberts Code sehr einfach und bringt auch einen tollen Effekt. Ich brauchte das damals für eine Anwendung für einen Menschen mit Sehbehinderung der sehr blendempfindlich ist und das Internet nutzt. Da ist jede Seite anders gestaltet und es macht daher keinen Sinn, in der Systemeinstellung mit den Farbprofilen zu arbeiten wenn nach dem Klick auf den nächsten Link ohnehin alles wieder völlig anders ist.
Es ist daher ein super Code der allerdings noch den kleinen Schönheitsfehler hat, dass ein Control seine Ursprungsfarbe wieder einnimmt, wenn es aktualisiert wird.
Liebe Grüße Stefan Cheers Stefan ------------------------------------------------ Ich verwende Visual Basic 2008 Express I'm using Visual Basic 2008 Express -
Ja, aber wenn ein Steuerelement während dem Negativ angewählt wird, wird das wieder in original angezeit, dann hat man halb original halb negativ und das sieht echt doof aus! Nun meine frage lautet, wie kann ich den Bildschirm ins negativ stellen, ohne dass er sich an einigen stellen zurück setzt.
LG Yves Riedener -
Hallo Yves,
genau das habe ich seinerzeit nicht weiter untersucht. Das Problem ist wohl, dass sich die Eigenschaft eines Controls z.B. beim MouseHover oder auch TabSelct etc. ändert und so jede Menge Controls ihre Paint-Eigenschaft verändern. Hier brauchst du sicher Hilfe eines Profis, der ich nun mal nicht bin. Theoretisch müsste ja immer nur das Control, das sich ändert wieder zurück gesetzt weden. Die Theorie nutzt uns aber nichts, wenn wir nicht wissen, wie man das in die Tat umseten kann.
Eine andere Idee wäre die, der zweite Weg, den Robert im Link beschrieben hat.
Shift + Alt + Prnt Scrn ist eine Tastenkombination mit der man in die besagten Kontrasteinstellungen kommt. Mit der KeysSendKey-Methode kannst du das aufrufen. Das dumme hierbei ist eben, dass du damit nicht direkt die Einstllung veränderts, sondern in einem Dialog landest.
Liebe Grüße Stefan Cheers Stefan ------------------------------------------------ Ich verwende Visual Basic 2008 Express I'm using Visual Basic 2008 Express -
Ich könnte es mit Bildschirmlupe von Windows machen, aber da stellen sich folgende Fragen:
Wie kann ich die Bildschirmlupe öffnen und die Einstellungen verändern und wie kann ich das Fenster dann verstecken und kann ich es automatisch schlissen wenn ich meine Anwendung geschlossen wird
LG Yves Riedener -
Hallo Yves,
das hört sich nach einer Abfolge von KeysSendKey an. Welche Tastenkombinationen im einzelnen erforderlich sind, kann ich dir allerdings nicht sagen.
Liebe Grüße Stefan Cheers Stefan ------------------------------------------------ Ich verwende Visual Basic 2008 Express I'm using Visual Basic 2008 Express