#NoTrayIcon
#include <WindowsConstants.au3>
HotKeySet ("^{DOWN}", "_1")
HotKeySet ("^{UP}", "_2")
HotKeySet ("{F4}", "normal")
HotKeySet ("{F11}", "ende")
$rgb = 128
$GUI = GUICreate("", 90, 30, -1, -1, BitOR($WS_POPUP, $WS_BORDER))
GUISetState(@SW_HIDE, $GUI)
$Label = GUICtrlCreateLabel("", 1, 1, 90, 30)
GUICtrlSetFont(-1, 11, 400, 0, "MS Sans Serif")
GUICtrlSetBkColor(-1, 0xB9E1F1)
Func _2 ()
if $rgb < 286 Then
$rgb = $rgb + 10
_SetGamma($rgb, $rgb, $rgb)
EndIf
sleep(1000)
GUISetState(@SW_HIDE, $GUI)
EndFunc
Func _1 ()
if $rgb > 0 Then
$rgb =$rgb - 10
_SetGamma ($rgb, $rgb, $rgb)
EndIf
sleep(1000)
GUISetState(@SW_HIDE, $GUI)
EndFunc
Func normal ()
$rgb = 128
_SetGamma ($rgb, $rgb, $rgb)
sleep(1000)
GUISetState(@SW_HIDE, $GUI)
EndFunc
Func ende ()
exit
EndFunc
While 1
Sleep (100)
WEnd
Func _SetGamma($vRed=128,$vGreen=128,$vBlue=128)
GUISetState(@SW_SHOW, $GUI)
WinSetTrans ($GUI, "",160 )
if $rgb=128 then
GUICtrlSetData($Label, $rgb&" "&"Norm")
else
GUICtrlSetData($Label, $rgb)
endif
Local $n_ramp,$rVar,$gVar,$bVar,$Ret,$i,$dc
If $vRed < 0 or $vRed > 386 then
SetError(1)
Return -1 ;Invalid Red value
EndIf
If $vGreen < 0 or $vGreen > 386 then
SetError(2)
Return -1 ;Invalid Green value
EndIf
If $vBlue < 0 or $vBlue > 386 then
SetError(3)
Return -1 ;Invalid Blue value
EndIf
$dc = DLLCall("user32.dll","int","GetDC","hwnd",0)
$n_ramp = DllStructCreate("short[" & (256*3) & "]")
For $i = 0 to 256
$rVar = $i * ($vRed + 128)
If $rVar > 65535 then $rVar = 65535
$gVar = $i * ($vGreen + 128)
If $gVar > 65535 then $gVar = 65535
$bVar = $i * ($vBlue + 128)
If $bVar > 65535 then $bVar = 65535
DllStructSetData($n_ramp,1,Int($rVar),$i) ;red
DllStructSetData($n_ramp,1,Int($gVar),$i+256) ;green
DllStructSetData($n_ramp,1,Int($bVar),$i+512) ;blue
Next
$ret = DLLCall("gdi32.dll","int","SetDeviceGammaRamp", _
"int",$dc[0],"ptr",DllStructGetPtr($n_Ramp))
$dc = 0
$n_Ramp = 0
EndFunc