Windows 8自动旋转注册表值
Windows 8 AutoRotation registry value
我们正在尝试确定当前是否从c++应用程序启用或禁用了自动旋转。以下代码始终返回值1,即使相同键的regedit显示为0。如果应用程序以标准用户或管理员身份运行,则返回相同的结果。
HKEY hkMain;
LONG lRes = RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\Microsoft\Windows\CurrentVersion\AutoRotation",0,KEY_QUERY_VALUE,&hkMain);
if (lRes==ERROR_SUCCESS) {
DWORD dwRegValue=0,dwSize=0,dwType=0;
dwSize = sizeof(DWORD);
lRes = RegQueryValueEx(hkMain,TEXT("Enable"),NULL,&dwType,(LPBYTE)&dwRegValue,&dwSize);
if (lRes==ERROR_SUCCESS) {
// dwRegValue value is always 1
}
RegCloseKey(hkMain);
}
Hans Passant的评论提供了答案"Regedit可能找错了密钥。请在64位操作系统上导航到SOFTWARE\Wow6432Node\Microsoft…。这是32位程序读取密钥的主页。"我们需要在注册表函数调用中包含KEY_WOW64_64KEY标志。感谢
相关文章:
- 有没有任务栏API可以立即应用注册表更改
- 检查注册表项是否链接到(或副本)另一个注册表项
- 禁用地址共享注册表不起作用
- 如何从注册表项中提取配置单元和注册表名称
- 注册表正在设置 1 个字符
- 清理"QSettings"注册表项的最佳方法(Windows上的Qt 5)
- 在 c++ 中编辑注册表项
- 某些进程的注册表限制
- 在编译时生成某种子类/类型注册表?
- 如何测试注册表项是否存在?
- 注册表-获取值(而不是键)上次更改的时间和键创建日期
- 从注册表中检索已注销用户的 sid
- 如何正确检查 c++ 是否存在注册表项?
- 如何在不使用任何数据库的情况下制作动态注册表单?
- 强制资源管理器重新加载注册表值
- 以编程方式锁定注册表项以避免并发问题
- 如何应用注册表模式使"select class depend on input"遵守开放封闭原则?
- 如何恢复注册表项的有效权限?C++
- 如何防止 C API 注册表中的 Lua 回调被垃圾回收?
- Windows 8自动旋转注册表值