设置背光亮度问题

pcmouse 2007-05-11 07:39:43
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) 获取背光灯亮度等级也是失败.

谁帮我看看问题出在哪里?
...全文
973 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
biosli 2008-07-01
  • 打赏
  • 举报
回复
哥们,改注册表才是正道。

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

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;
}

pengqiuwen 2008-06-30
  • 打赏
  • 举报
回复
6楼同志,你给的地址哪有什么这样的文章啊.
我遇到和楼主同样的问题,用DeviceIoControl提示失败,
用SetPowerRequirement提示成功,但是背光没变化.
没招了,高手速度帮忙啊,小弟不胜感激!!
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
都是很好的建议! 值得学习
raychao 2008-03-25
  • 打赏
  • 举报
回复
通过直接修改注册表的backlight中的参数可以吗?不过这个方法只能针对特定机型
fonx 2008-03-10
  • 打赏
  • 举报
回复
我是7楼,我又回来了。

背光太亮的问题解决了,我翻出来一个很旧的墨镜,效果很好。
lenux 2007-12-24
  • 打赏
  • 举报
回复
同上
wangjilan1973 2007-12-23
  • 打赏
  • 举报
回复
7楼同问
fonx 2007-09-22
  • 打赏
  • 举报
回复
借地问一个问题:

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

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

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

是不是838的硬件接口不支持这个修改呢?
ren54 2007-08-22
  • 打赏
  • 举报
回复
楼主的问题我以前遇到过,问了DOPOD的技术,他们说系统可能没实现这个接口。

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

这篇文章会帮助你的。
happytt 2007-08-19
  • 打赏
  • 举报
回复
SetPowerRequirement?楼主这个背景亮度调整搞定了没
pcmouse 2007-05-12
  • 打赏
  • 举报
回复
DeviceIoControl 不成功 用GetLastError返回错误代码32
错误代码〖32〗-进程无法访问文件,因为另一个程序正在使用此文件。

DeviceIoControl 第二个参数 2表示写 1表示读吧

至于PM IOCTL IOCTL_POWER_SET不懂怎么做,能说的具体点吗,最好具体到能把设置背光亮暗
pcmouse 2007-05-12
  • 打赏
  • 举报
回复
SetPowerRequirement(TEXT("BKL1:"), D4, POWER_NAME, NULL, 0) 执行成功 但是背光没有变化. 不知道为什么.
pcmouse 2007-05-12
  • 打赏
  • 举报
回复
VIDEO_POWER_MANAGEMENT vpm 解决了背光开关的问题 接下来怎么解决背光变化呢
就是怎么解决半亮全亮等问题
Fly_Snail 2007-05-11
  • 打赏
  • 举报
回复
你的 DeviceIOControl()函数中传递的2或者1是什么意思呢?
在Backlight driver 的IOCTRL 函数中,有支持你的2或者1的分支吗?
我想是没有的

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

IOCTL_POWER_SET 诸如此类的。

不知道说的对不对

大家交流一下,3Q!

再者我认为你调整背光亮度的方式有点问题,所有对设备电源状态的改变,我认为都应该通过PM来实现,而不是你直接去操作设备。

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧