社区
硬件/系统
帖子详情
程序控制笔记本的背光亮度
litomboy
2010-01-05 02:41:48
请教高手如何获得当前的笔记本的背光亮度,程序控制笔记本的背光亮度,高手做过此方面的指点下是否有此类的API函数,我要的不是在当前亮度下调节对比度,而是得到当前的背光亮度,我们的数据是在EC空间内,但是在VISTA和WIN7下,要是得到此值必须以管理员的权限运行,可是不能手动运行。做过此方面的高手指点下,要是写驱动读写数据的话,在VISTA和WIN7下能否越过UAC,因为我们的程序要出货的,说白了就是OSD软件的背光亮度控制程序。
...全文
820
8
打赏
收藏
程序控制笔记本的背光亮度
请教高手如何获得当前的笔记本的背光亮度,程序控制笔记本的背光亮度,高手做过此方面的指点下是否有此类的API函数,我要的不是在当前亮度下调节对比度,而是得到当前的背光亮度,我们的数据是在EC空间内,但是在VISTA和WIN7下,要是得到此值必须以管理员的权限运行,可是不能手动运行。做过此方面的高手指点下,要是写驱动读写数据的话,在VISTA和WIN7下能否越过UAC,因为我们的程序要出货的,说白了就是OSD软件的背光亮度控制程序。
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
迷恋郭德纲
2010-11-26
打赏
举报
回复
5楼这段代码的实例能否共享??
wangk
2010-01-19
打赏
举报
回复
GetMonitorBrightness系列操作需要发控制码给显示设备的驱动,如果设备驱动不回应的话,肯定是得不到正确值的。
这个问题你应该找设备供应商寻求支持,最好可以直接从他们那边拿SDK和Sample。
litomboy
2010-01-19
打赏
举报
回复
CSDN 的高手,冒个泡啊!期待你们的指点!
litomboy
2010-01-14
打赏
举报
回复
谢谢,非常的感谢,我现在找到解决的办法了,现在EC做了控制背光亮度的功能了,也就是说系统能支持这项功能了,可是我现在当前亮度的值还是取不出来,按常规来说 应该能取出来的.下面的API函数 高手有接触到的没?
VISTA系统下提供了一些高层的API可以方便地控制屏幕的亮度、色温、对比度、显示区等。这些API定义在HighLevelMonitorConfigurationAPI.h中,库为dxva2.lib。在对屏幕操作前需要获得其句柄,操作完后要释放。这里分别以GetPhysicalMonitor和FreePhysicalMonitor实现。
void FreePhysicalMonitor(DWORD npm, LPPHYSICAL_MONITOR ppm)
{
DestroyPhysicalMonitors(npm, ppm);
// Free the array.
free(ppm);
}
LPPHYSICAL_MONITOR GetPhysicalMonitor(DWORD *pnpm)
{
HMONITOR hMon = NULL;
hMon = MonitorFromWindow(NULL, MONITOR_DEFAULTTOPRIMARY);
LPPHYSICAL_MONITOR ppm = NULL;
DWORD npm = 0;
BOOL bRet = GetNumberOfPhysicalMonitorsFromHMONITOR(hMon, &npm);
if (bRet) {
ppm = (LPPHYSICAL_MONITOR)malloc(npm * sizeof(PHYSICAL_MONITOR));
if (ppm) {
bRet = GetPhysicalMonitorsFromHMONITOR(hMon, npm, ppm);
if (!bRet) {
FreePhysicalMonitor(npm, ppm);
ppm = NULL;
npm = 0;
}
}
}
*pnpm = npm;
return ppm;
}
返回的是PHYSICAL_MONITOR数组,以下示例只是使用了第一个PHYSICAL_MONITOR元素。
1、调整屏幕前我们可以看看显示器支持什么功能
Vista提供的API是GetMonitorCapabilities(在有些显示器上虽然GetMonitorCapabilities调用失败,但仍然可以调整亮度等;在有些显示器上,从GetMonitorCapabilities返回的值看可以支持某些功能,但实际又不能。这些都另当别论)。
LPPHYSICAL_MONITOR ppm = 0;
ppm = GetPhysicalMonitor();
if (ppm) {
DWORD nmc = 0, nct = 0;
GetMonitorCapabilities(ppm->hPhysicalMonitor, &nmc, &nct);
CString str = _T("");
if (nmc & MC_CAPS_BRIGHTNESS) {
str += _T("Support brightness control\n");
}
if (nmc & MC_CAPS_COLOR_TEMPERATURE) {
str += _T("Support color temperature\n");
}
if (nmc & MC_CAPS_CONTRAST) {
str += _T("Support contrast\n");
}
.........
if (str == _T(""))
str = _T("Support None");
MessageBox(str);
FreePhysicalMonitor(npm, ppm);
}
2、如何调整亮度
LPPHYSICAL_MONITOR ppm = 0;
DWORD npm = 0;
ppm = GetPhysicalMonitor(&npm);
if (ppm) {
DWORD nMin = 0, nCur = 0, nMax = 0;
GetMonitorBrightness(ppm->hPhysicalMonitor, &nMin, &nCur, &nMax);
CString str;
str.Format(_T("Min:%d, Cur:%d, Max:%d"), nMin, nCur, nMax);
MessageBox(str);
SetMonitorBrightness(ppm->hPhysicalMonitor, nMin);
Sleep(1000);
SetMonitorBrightness(ppm->hPhysicalMonitor, nMax);
Sleep(1000);
SetMonitorBrightness(ppm->hPhysicalMonitor, nCur);
Sleep(1000);
FreePhysicalMonitor(npm, ppm);
}
3、调色温
LPPHYSICAL_MONITOR ppm = 0;
DWORD npm = 0;
ppm = GetPhysicalMonitor(&npm);
if (ppm) {
SetMonitorRedGreenOrBlueGain(ppm->hPhysicalMonitor, MC_RED_GAIN, 50);
Sleep(500);
SetMonitorRedGreenOrBlueGain(ppm->hPhysicalMonitor, MC_GREEN_GAIN, 49);
Sleep(500);
SetMonitorRedGreenOrBlueGain(ppm->hPhysicalMonitor, MC_BLUE_GAIN, 52);
MessageBox(_T("Set color temperature => Done"));
FreePhysicalMonitor(npm, ppm);
}
4、调对比度
LPPHYSICAL_MONITOR ppm = 0;
DWORD npm = 0;
ppm = GetPhysicalMonitor(&npm);
if (ppm) {
DWORD nMin, nCur, nMax;
GetMonitorContrast(ppm->hPhysicalMonitor, &nMin, &nCur, &nMax);
CString str;
str.Format(_T("Min:%d, Cur:%d, Max:%d"), nMin, nCur, nMax);
MessageBox(str);
SetMonitorContrast(ppm->hPhysicalMonitor, nMin);
Sleep(1000);
SetMonitorContrast(ppm->hPhysicalMonitor, nMax);
Sleep(1000);
SetMonitorContrast(ppm->hPhysicalMonitor, nCur);
Sleep(1000);
FreePhysicalMonitor(npm, ppm);
}
5、查看显示器类型
LPPHYSICAL_MONITOR ppm = 0;
DWORD npm = 0;
ppm = GetPhysicalMonitor(&npm);
if (ppm) {
TCHAR *descs[] = {
_T("Shadow-mask cathode ray tube (CRT)"),
_T("Aperture-grill CRT"),
_T("Thin-film transistor (TFT) display"),
_T("Liquid crystal on silicon (LCOS) display"),
_T("Plasma display"),
_T("Organic light emitting diode (LED) display"),
_T("Electroluminescent display"),
_T("Microelectromechanical display"),
_T("Field emission device (FED) display")
};
MC_DISPLAY_TECHNOLOGY_TYPE dtt;
GetMonitorTechnologyType(ppm->hPhysicalMonitor, &dtt);
CString str;
str.Format(_T("Technology type: %s"), descs[(int)dtt]);
MessageBox(str);
FreePhysicalMonitor(npm, ppm);
}
6、恢复出厂设置
LPPHYSICAL_MONITOR ppm = 0;
DWORD npm = 0;
ppm = GetPhysicalMonitor(&npm);
if (ppm) {
RestoreMonitorFactoryDefaults(ppm->hPhysicalMonitor);
FreePhysicalMonitor(npm, ppm);
}
oyljerry
2010-01-12
打赏
举报
回复
vista,win7上面加强了安全属性,所以需要Admin权限的程序就需要跳UAC通知用户,你做成驱动,权限是够了,但是你安装驱动等,也是需要admin权限的,否则无法安装成功。
所以最终会过来,你可以把你的exe,嵌入requireAdministrator的manifest,这样用户双击exe的时候,就会自动跳UAC,让用户允许...
litomboy
2010-01-12
打赏
举报
回复
我晕,我都发布了这么长时间了,CSDN的 高手就可怜可怜我吧,我现在找到方法了,可是GetMonitorBrightNess() 不知道为什么得不到值 高手 指点下吧!!!
liulwn
2010-01-05
打赏
举报
回复
估计没硬件的API接口文档做不了。
sandyandy
2010-01-05
打赏
举报
回复
帮顶
linux lcd 翻转90_正点原子Linux第二十九章LCD
背
光调节实验
1)资料下载:点击资料即可下载2)对正点原子Linux感兴趣的同学可以加群讨论:9354467413)关注正点原子公众号,获取最新资料更新第二十九章LCD
背
光调节实验 不管是使用显示器还是手机,其屏幕
背
光都是可以调节的,通过调节
背
光就可以控制屏幕的亮度。在户外阳光强烈的时候可以通过调高
背
光来看清屏幕,在光线比较暗的地方可以调低
背
光,防止伤眼睛并且省电。正点原子的三款RGB LCD也支持
背
光调节,本...
FPGA ——LCD12864 _verilog程序
1、 LCD12864 是一种单片机常用显示屏,按照其字库共可显示16*4个英文字母 或者 8*4个汉字,按数据传输方式具有很多分类。以下为较为常见的8数据线接口的显示教程。 2、 其工作原理是通过驱动RW,RS,E 、8位数据口 来写命令和写数据。在 RW表读“1”、写“0”操作。本次只进行读操作,故RW设为“0”。 E为使能端:高电平写入,故可与clock时钟相同。 RS在写入数...
新手必看!FANUC机器人示教器上那些让人懵圈的按键,到底怎么用?(附常用组合键清单)
本文详细解析了FANUC机器人示教器上各类按键的功能与使用方法,包括安全开关、导航操作键和常用组合键等,帮助新手快速掌握工业机器人操作技巧。特别介绍了发那科示教器的核心功能键和实用组合键,提升操作效率与安全性。
1. ESP32-S3驱动1.47寸ST7789V3彩屏:硬件SPI与软件SPI移植实战
本文详细介绍了ESP32-S3微控制器驱动1.47寸ST7789V3彩屏的实战教程,重点对比了硬件SPI与软件SPI两种移植方案。内容涵盖引脚定义、驱动文件配置、代码修改及常见问题排查,旨在帮助开发者根据项目需求(速度或引脚灵活性)快速实现屏幕显示功能。
1.3寸彩屏驱动移植实战:基于天空星GD32F407的ST7789V2 SPI屏软件与硬件SPI配置详解
本文详细介绍了如何在天空星GD32F407开发板上移植驱动1.3寸ST7789V2 SPI彩屏。通过对比软件模拟SPI与硬件SPI两种配置方式,提供了从引脚定义、GPIO初始化到底层通信函数修改的完整实战教程,帮助开发者快速实现屏幕显示功能并优化性能。
硬件/系统
2,644
社区成员
17,229
社区内容
发帖
与我相关
我的任务
硬件/系统
VC/MFC 硬件/系统
复制链接
扫一扫
分享
社区描述
VC/MFC 硬件/系统
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章