( Monitor abdunkeln ) - Eine "Plane"/Gui erstellen die nicht klickbar ist? Graka Settings ändern?

  • Ich hatte soeben mal eine Idee.. und zwar hat man einfach iwas ( Gui etc ) was sich über den gesamten Bildschirm legt.
    Wenn man dies nun schwarz und durchsichtig macht kann man ja damit den Monitor abdunkeln.. nur darf das ja nicht klickbar sein da man sonst nix mehr machen könnte. :pinch:
    Hat da jmd eine Idee zu?

    Alternative würde auch was gehen was direkt in den Einstellungen der Graka die Helligkeit ändern kann.. da hätt ich aber gar keinen Plan mehr von :P

    • Offizieller Beitrag

    Hallo

    Im Engl. Forum gibt es ein Beispiel, wie man bei nVidia Grafikkarten den Gamma runterschrauben kann.
    Sonst einfach eine GUI mit $WS_POPUP und $WS_EX_TOOLWINDOW+$WS_EX_TOPMOST bauen, mit BREITExHÖHE = BREITExHÖHE des Bildschirmes und einfach Schwarz färben (GuiSetBKColor).
    Dann mit WinSetTrans noch die Transparenz so runter stufen wie du es willst. (Weiteres zu diesem Befehle --> Hilfe)

  • wenn man WinSetTrans und $WS_EX_TRANSPARENT zusammen verwendet, wird das Fenster durchklickbar ;)

    Spoiler anzeigen
    [autoit]

    #include<WindowsConstants.au3>
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT, $WS_EX_TOOLWINDOW))
    GUISetBkColor(0)
    HotKeySet("#+{ESC}", "_Exit") ; Win-Shift-Escape = Exit
    HotKeySet("#{ESC}", "_Top") ; Win-Escape = Wieder nach oben
    WinSetTrans($hGUI,"",100)
    GUISetState()
    While 1
    Sleep(1000)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    Exit
    EndFunc
    Func _Top()
    WinSetOnTop($hGUI,"",1)
    EndFunc

    [/autoit]
  • @Prog@ndy
    Dein Beispiel würde bei zwei angeschlossenen monitoren nur einen abdunkeln aber nicht beide soweit ich weis geht das mit ner dll
    das andere mit nvidia habe ich mir noch nicht angeschaut würde auf jedenfall nciht überall gehen

  • @Prog@ndy
    Dein Beispiel würde bei zwei angeschlossenen monitoren nur einen abdunkeln aber nicht beide soweit ich weis geht das mit ner dll
    das andere mit nvidia habe ich mir noch nicht angeschaut würde auf jedenfall nciht überall gehen


    Klar, das dunkelt nur einen ab. Ich hab erstens nur einen, zweitens sollte das nur zeigen, dass WinSetTrans (§WS_EX_LAYERED) mit $WS_EX_TRANSPARENT durchklickbar wird.

  • So jetzt mal so wie ich es mir gedacht habe:

    [autoit]

    #include<WindowsConstants.au3>
    $ein_monitor = False
    If $ein_monitor = True Then
    $hGUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT, $WS_EX_TOOLWINDOW))
    Else
    $hGUI = GUICreate("", @DesktopWidth*2, @DesktopHeight, -@DesktopWidth, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TRANSPARENT, $WS_EX_TOOLWINDOW))
    EndIf
    GUISetBkColor(0)
    Global $trans = 115
    HotKeySet("#+{ESC}", "_Exit") ; Win-Shift-Escape = Exit
    HotKeySet("#{ESC}", "_Top") ; Win-Escape = Wieder nach oben
    HotKeySet("#{-}", "_lighten") ; Win-+ = Heller
    HotKeySet("#{NUMPADSUB}", "_lighten") ; Win-+ = Heller
    HotKeySet("#{+}", "_darken") ; Win-- = Dunkler
    HotKeySet("#{NUMPADADD}", "_darken") ; Win-- = Dunkler
    WinSetTrans($hGUI,"",$trans)
    GUISetState()
    While 1
    Sleep(1000)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func _lighten()
    $trans += 20
    If $trans >= 235 Then $trans = 235
    WinSetTrans($hGUI,"",$trans)
    EndFunc
    Func _darken()
    $trans -= 20
    If $trans <= 15 Then $trans = 15
    WinSetTrans($hGUI,"",$trans)
    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _Exit()
    Exit
    EndFunc
    Func _Top()
    WinSetOnTop($hGUI,"",1)
    EndFunc

    [/autoit][autoit][/autoit][autoit][/autoit]


    Kann man auch mit 2 Monitoren machen ;)

  • Dann kann man schnell mal ein weing rumschalten falls mal Sonne draufscheint oder so was:-P
    Ich denk aber mal dass es bei Vollbildanwendungen wohl nicht klappen wird

  • Dann kann man schnell mal ein weing rumschalten falls mal Sonne draufscheint oder so was:-P
    Ich denk aber mal dass es bei Vollbildanwendungen wohl nicht klappen wird

    Hm und wenn man die Gui immer im Vordergrund hält könnte das doch auch möglich sein oder ?

  • Aber auch wenn die im Vordergrund ist verdrängen die Vollbildanwendungen dies ja meistens..
    Wenn du de Taskmanager auf hast und nen Spiel startest wird der Taskmanager z.b. verdeckt.. und diese Gui hier wird schon von dem überdeckt

    Aber wenn du Lust hast kannste ja ein wenig rumbasteln ;)