我正在尝试做一些看起来很简单的事情,我只是想让我的程序能够在某些条件下调整显示器亮度。因此,我查看了 Windows电源管理 API,发现了一些似乎对我有用的东西。我放在一起的代码的核心(基本上,我引用了 this)看起来像这样:
GUID *pPwrGUID;
GUID subGUID = GUID_VIDEO_SUBGROUP;
GUID BriGUID = GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS;
PowerGetActiveScheme(NULL, &pPwrGUID);
PowerWriteACValueIndex(NULL, pPwrGUID, &subGUID, &BriGUID, 0);
这似乎很简单。我遇到的问题是 PowerWriteACValueIndex 返回错误代码 2:未找到文件,这对我来说没有多大意义。我在想问题只是我有一个错误的索引值(PowerWriteACValueIndex 函数中的最后一个参数),但是使用 PowerReadACValueIndex 将写入更改为读取(以查看是否可以获得合法值)也返回 2。我已经检查并确保 GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS 在头文件中的 GUID_VIDEO_SUBGROUP 下。
只有我能想到的其他可能有用的信息是我的 WINVER 设置为 0x0600 (vista)。
任何想法这里可能出了什么问题?看起来这应该是一个非常简单的过程,但我真的没有任何运气。谢谢你。