dk0521 发表于 2009-2-1 20:38:25

请问可以用API控制屏幕亮度吗?

请问可以用API控制屏幕亮度吗?

pusofalse 发表于 2009-2-1 22:31:59

$scHwnd = DllCall("user32.dll", "hwnd", "GetDesktopWindow")
$hDC = DllCall("user32.dll", "hwnd", "GetDC", "hwnd", $scHwnd)
$PriBright = DllStructCreate("ulong;ulong;ulong")


$resGetBright = DllCall("Gdi32.dll", "int", "GetDeviceGammaRamp", "hwnd", $hDC, "ptr", DllStructGetPtr($PriBright))

$NewBright = DllStructCreate("ulong;ulong;ulong")

For $a = 1 to 256
       For $d = 1 to 3
        DllStructSetData($NewBright, $d, DllStructGetData($PriBright, 1, $a) / 2, $a)
      Next
Next

$res = DllCall("Gdi32.dll", "int", "SetDeviceGammaRamp", "hwnd", $hDC, "ptr", DllStructGetPtr($NewBright))
$PriBright = 0
$NewBright = 0

If $res then msgBox(64, '', 'Done')
新亮度是根据当前亮度的一半值来的,所以不要调太大,也不要调太小,会造成花屏。虽然测试重启就恢复正常。

[ 本帖最后由 pusofalse 于 2009-2-2 05:59 编辑 ]

ceoguang 发表于 2009-2-1 23:22:44

nice code ............

范统.贾 发表于 2009-2-2 03:01:02

学习一下。

dk0521 发表于 2009-2-2 12:16:38

我还在想说 为什么会花屏
再请问 ~用GUICtrlCreateSlider 控制
修改重点 在于 / 2*2 这里吗?
页: [1]
查看完整版本: 请问可以用API控制屏幕亮度吗?