如何编程调整 Windows mobile 的屏幕亮度?

Kevenshao 2008-04-25 10:33:12
有什么API或是发出什么消息来调整windows mobile6 的屏幕亮度?
...全文
1005 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangls1982 2009-05-18
  • 打赏
  • 举报
回复
不好意思,re错了帖子,麻烦版主删除上面的帖子

应该是下面这个代码片段

需要
#include <Pm.h>

感谢楼主!可以使用

[Quote=引用 8 楼 biosli 的回复:]
C/C++ code
// 开关灯的代码,来自MSDN
// IN BOOL fBacklightOn - TRUE to keep the backlight on.
void SetBacklightRequirement(BOOL fBacklightOn)
{
// The name of the backlight device.
TCHAR tszBacklightName[] = TEXT("BKL1:");

static HANDLE s_hBacklightReq = NULL;

if (fBacklightOn)
{
if (NULL == s_hBacklightReq)
{
// Turn the b…
[/Quote]
liangls1982 2009-05-18
  • 打赏
  • 举报
回复
还需要
#include <Pm.h>

感谢楼主!可以使用

[Quote=引用 12 楼 fambalaya 的回复:]
Read the following code


1 static bool TestLcdLight()
2 {
3 LED_INTENSITY_DATA LedIntensityData;
4 HANDLE m_hLed = CreateFile(NLED_DEVICE_NAME, 0, 0, NULL, 0, 0, NULL);
5 if (m_hLed == INVALID_HANDLE_VALUE)
6 {
7 return false;
8 }
9 LedIntensityData.LedNumber = 3;
10 Sleep(1000);
11
12 for (int i=10…
[/Quote]
zhaojiangang 2009-01-04
  • 打赏
  • 举报
回复
C# 该如何实现呢? 必须依赖厂家提供的SDK么?
baconxd 2008-11-05
  • 打赏
  • 举报
回复
关注一下
刚好我也寻找相关内容。
maomi01 2008-05-18
  • 打赏
  • 举报
回复
up
fambalaya 2008-05-06
  • 打赏
  • 举报
回复
Read the following code


1 static bool TestLcdLight()
2 {
3 LED_INTENSITY_DATA LedIntensityData;
4 HANDLE m_hLed = CreateFile(NLED_DEVICE_NAME, 0, 0, NULL, 0, 0, NULL);
5 if (m_hLed == INVALID_HANDLE_VALUE)
6 {
7 return false;
8 }
9 LedIntensityData.LedNumber = 3;
10 Sleep(1000);
11
12 for (int i=100;i>0;i-=10)
13 {
14 LedIntensityData.Intensity = i;
15 DeviceIoControl(m_hLed, IOCTL_NLED_SETLEDINTENSITY,
16 &LedIntensityData, sizeof(LedIntensityData ), NULL, 0, NULL, NULL );
17 Sleep(150);
18 }
19
20 for (int i=0;i<100;i+=10)
21 {
22 LedIntensityData.Intensity = i;
23 DeviceIoControl(m_hLed, IOCTL_NLED_SETLEDINTENSITY,
24 &LedIntensityData, sizeof(LedIntensityData ), NULL, 0, NULL, NULL );
25 Sleep(150);
26 }
27 CloseHandle(m_hLed);
28 return true;
29 }
30
biosli 2008-05-06
  • 打赏
  • 举报
回复
lz我试了一下,修改注册表项马上就能生效啊~~

HKEY hKey;
LPCWSTR lpTimeOutKey = L"\\ControlPanel\\BackLight";

if (RegOpenKeyEx(HKEY_CURRENT_USER, lpTimeOutKey ,0, 0, &hKey)==ERROR_SUCCESS)
{
DWORD data = 7-lightLv; \\lightLv为亮度级数
if (RegSetValueEx(hKey,L"Brightness",0,REG_DWORD,(CONST BYTE*)&data,sizeof(DWORD)) != ERROR_SUCCESS)
{
MessageBox(NULL,_T("失败"),_T("Faild"),MB_OK);
}
}
RegCloseKey(hKey);
文斌 2008-04-29
  • 打赏
  • 举报
回复
把D3改成D0就会最亮了,你查查MSDN该函数的描述就知道了.
Kevenshao 2008-04-29
  • 打赏
  • 举报
回复
我修改的是 HKEY_CURRENT_USER\ControlPanel\BackLight\Brightness的值.
zl_inter 2008-04-28
  • 打赏
  • 举报
回复
理论上是修改注册表就ok了!

你没有生效,估计是要postmessage,告诉WM_settingchange
biosli 2008-04-28
  • 打赏
  • 举报
回复
用了一下楼上给的函数,屏幕变成了“关闭”状态……
这个函数太狠了……
文斌 2008-04-28
  • 打赏
  • 举报
回复
SetDevicePower(_T("BKL1:"),POWER_NAME,D3);
biosli 2008-04-28
  • 打赏
  • 举报
回复

// 开关灯的代码,来自MSDN
// IN BOOL fBacklightOn - TRUE to keep the backlight on.
void SetBacklightRequirement(BOOL fBacklightOn)
{
// The name of the backlight device.
TCHAR tszBacklightName[] = TEXT("BKL1:");

static HANDLE s_hBacklightReq = NULL;

if (fBacklightOn)
{
if (NULL == s_hBacklightReq)
{
// Turn the backlight on by setting the requirement that the backlight device
// must remain in device state D0 (full power). Replace D0 with D4 (zero power) to
// turn the backlight off.
s_hBacklightReq = SetPowerRequirement(tszBacklightName, D0, POWER_NAME, NULL, 0);

if (!s_hBacklightReq)
RETAILMSG(1, (L"SetPowerRequirement failed: %X\n", GetLastError()));
}
}
else
{
if (s_hBacklightReq)
{
if (ERROR_SUCCESS != ReleasePowerRequirement(s_hBacklightReq))
RETAILMSG(1, (L"ReleasePowerRequirement failed: %X\n", GetLastError()));

s_hBacklightReq = NULL;
}
}
}
biosli 2008-04-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 Kevenshao 的回复:]
我已经试过了,不行,
我通过修改注册表来改变亮度,但是必须重起机子才能生效,有哪个知道一个修改注册表后能立即生效的办法?
[/Quote]

楼主,你改的是注册表哪一项?
是HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Power\State\BacklightOff里面的bkl1:么?
caihong1986 2008-04-25
  • 打赏
  • 举报
回复
没设置过这个,帮你顶一下
Kevenshao 2008-04-25
  • 打赏
  • 举报
回复
我已经试过了,不行,
我通过修改注册表来改变亮度,但是必须重起机子才能生效,有哪个知道一个修改注册表后能立即生效的办法?
jzkhh 2008-04-25
  • 打赏
  • 举报
回复
没做过,不过用SetPowerRequirement应该可以

7,655

社区成员

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

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