首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

设置背光亮度有关问题

2012-02-19 
设置背光亮度问题BOOLSetBackLightLevel(DWORDdwLevel){BOOLbRetFALSEDWORDdwRetHANDLEhCreateFile(TE

设置背光亮度问题
BOOL   SetBackLightLevel(DWORD   dwLevel)
{
                        BOOL   bRet   =   FALSE;
                        DWORD   dwRet;

                        HANDLE   h   =   CreateFile(TEXT( "BKL1: "),   GENERIC_READ|GENERIC_WRITE,   0,0,
                                                                                                        OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,   0);  
                      if   (h   !=   INVALID_HANDLE_VALUE)
                    {

                                          if   (   DeviceIoControl(h,   2   ,   &dwLevel,   sizeof(DWORD),   0,0,   &dwRet,   0))
                                          {
MessageBox(hWnd,L "设置背光灯亮度成功 ",   L "error ",MB_OK);
                                                                bRet   =   TRUE;
                                          }
  else
MessageBox(hWnd,L "设置背光灯亮度失败 ",   L "error ",MB_OK);
                                        CloseHandle(h);
                    }
      else
      MessageBox(hWnd,L "打开文件失败 ",L "error ",MB_OK);
                    return   bRet;
}  

我在多普达818上测试   提示 "设置背光灯亮度失败 ".


同样   DeviceIoControl(h,   1   ,   0,   0,   &dwOut,   sizeof(DWORD),   &dwRet,   0)   获取背光灯亮度等级也是失败.

谁帮我看看问题出在哪里?

[解决办法]
你的 DeviceIOControl()函数中传递的2或者1是什么意思呢?
在Backlight driver 的IOCTRL 函数中,有支持你的2或者1的分支吗?
我想是没有的

要对一个设备的电源状态进行调整,我想应该是调用 PM 的IOCTL 吧
比如

IOCTL_POWER_SET 诸如此类的。

不知道说的对不对

大家交流一下,3Q!

再者我认为你调整背光亮度的方式有点问题,所有对设备电源状态的改变,我认为都应该通过PM来实现,而不是你直接去操作设备。
[解决办法]
SetPowerRequirement?楼主这个背景亮度调整搞定了没
[解决办法]
楼主的问题我以前遇到过,问了DOPOD的技术,他们说系统可能没实现这个接口。

http://www.3snews.net/index.php/111/action_viewspace_itemid_2315.html

这篇文章会帮助你的。


[解决办法]
借地问一个问题:

背景灯的亮度能任意设置吗?

比如说,dopod 838 的背光强度只有5个级别,0(不亮),1(最暗),……4(最亮)。

能不能通过程序修改级别1的背光强度,比如说让他更暗一些但又不是关闭?因为这个亮度在夜间还是太刺眼了,我希望能修改地更柔和一些。

是不是838的硬件接口不支持这个修改呢?
[解决办法]
7楼同问
[解决办法]
同上
[解决办法]
我是7楼,我又回来了。

背光太亮的问题解决了,我翻出来一个很旧的墨镜,效果很好。
[解决办法]
通过直接修改注册表的backlight中的参数可以吗?不过这个方法只能针对特定机型
[解决办法]
都是很好的建议! 值得学习
[解决办法]
6楼同志,你给的地址哪有什么这样的文章啊.
我遇到和楼主同样的问题,用DeviceIoControl提示失败,
用SetPowerRequirement提示成功,但是背光没变化.
没招了,高手速度帮忙啊,小弟不胜感激!!

[解决办法]
哥们,改注册表才是正道。

注册的信息在:HKEY_CURRENT_USER\ControlPanel\BackLight里面的Brightness。
改完记得刷一下信息:

C/C++ code
BOOL NotifyChange(){    //Gets the handle to the power manager reload activity timeout event    HANDLE hevReloadActivityTimeouts=OpenEvent(EVENT_ALL_ACCESS, FALSE, _T("PowerManager/ReloadActivityTimeouts"));    //If we got valid one then invoke the event    if (hevReloadActivityTimeouts) {        SetEvent(hevReloadActivityTimeouts); //Set the state of the event to Signal        CloseHandle(hevReloadActivityTimeouts); //close the handle of the event        return TRUE;    }    return FALSE;} 

热点排行