Qt获取注册表项
Qt get registry key
我试过
QMessageBox msgBox;
HKEY regKey;
WCHAR regKeyName;
DWORD lpcValueName = MAX_PATH;
LONG err = RegOpenKeyEx(HKEY_LOCAL_MACHINE, LPCWSTR("HARDWARE\DEVICEMAP\SERIALCOMM"), 0, KEY_QUERY_VALUE | KEY_READ | KEY_WOW64_64KEY, ®Key);
if (err == 0)
{
msgBox.setText("success " + QString::number(err));
} else
{
msgBox.setText("error " + QString::number(err));
};
msgBox.exec();
和应用程序总是显示"错误2"的提示框。为什么我打不开注册表项?我认为LPCWSTR("HARDWARE\DEVICEMAP\SERIALCOMM")
不是一个好主意。
首先,您可以使用QSettings从注册表读取和写入。其次,DEVICEMAP可能是只读且受保护的。要检查,请打开注册表编辑器(regedit),看看是否可以手动更改其中的值。
如果你的软件是关于读取和写入串行端口,你可以看看QtSerialPort模块
我个人会这样使用QSettings来完成这个任务:
QSettings settings("HARDWARE\DEVICEMAP\SERIALCOMM", QSettings::NativeFormat);
qDebug() << settings.value("Default", "0").toString();
这可能不是正确的语义,但你明白的意思。您可以在官方文档中阅读更多详细信息。
相关文章:
- 有没有任务栏API可以立即应用注册表更改
- 检查注册表项是否链接到(或副本)另一个注册表项
- 禁用地址共享注册表不起作用
- 如何从注册表项中提取配置单元和注册表名称
- 注册表正在设置 1 个字符
- 清理"QSettings"注册表项的最佳方法(Windows上的Qt 5)
- 在 c++ 中编辑注册表项
- 注册表-获取值(而不是键)上次更改的时间和键创建日期
- 如何获取句柄并枚举注册表路径:"REGISTRYA"?
- 有没有办法使用 win32 API 调用获取 MachineGuid(而不是从注册表中读取它)
- c++注册表未获取第二个值
- 正在从Registry_TypeGroup1类获取注册表项路径(Windows事件跟踪)
- 使用 RegQueryValueEx 从注册表中获取计算机名称
- 如何从带有C++的Windows上的注册表中获取具有完整路径的"Open With"程序?
- 如何在指定的注册表值更改时在ATL ActiveX控件中获取事件通知以用作windows移动ActiveX控件
- 从注册表中获取c++崩溃的值
- 获取COM-Object的dll文件,而不使用c++中的CLSID和注册表
- 即使使用系统服务中的RegOpenCurrentUser,也无法获取用户级注册表值
- 通过RegQueryValueEx和RegGetValue获取注册表值时的怪异行为
- Qt获取注册表项