QSettings setvalue方法将QVariant数据类型写入Windows注册表

时间:2017-02-21 15:23:53

标签: qt registry ftdi qvariant qsettings

我尝试从Windows注册表更新FTDI设置。我可以从注册表中读取和修改ConfigData值,并通过将其转换为QByteArray来更改一些值。

        QSettings settings("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Enum\\FTDIBUS\\VID_0403+PID_6015+" + port.serialNumber() + "\\0000\\Device Parameters" , QSettings::NativeFormat);

        QStringList regReturn = settings.allKeys();

        QVariant ccc = settings.value(regReturn.at(0));

        QString kkkk = ccc.toString();

        QByteArray b((const char*) (kkkk.utf16()), kkkk.size() * 2);

        b[2] = 0x00;
        b[3] = 0x00;

        kkkk = QString::fromUtf16((ushort *)(b.data()),kkkk.size());

        settings.setValue("LatencyTimer", 1);
        settings.setValue("try", QVariant::fromValue(kkkk));

执行后,我已经控制了注册表值,我看到QVariant使用下面的图片类型封装数据。我怎么能阻止这个?

Raw Data from registery
    Written data

1 个答案:

答案 0 :(得分:0)

Qt当前(实际上很长一段时间)not supported。您需要使用原生的 WinAPI 方法来执行此操作。