2017-02-21 3 views
0

Ich versuche, FTDI-Einstellungen von Windows-Registrierung zu aktualisieren. Ich kann die ConfigData-Werte aus der Registrierung lesen und ändern und einige Werte ändern, indem ich sie in QByteArray umwandle.QSettings setvalue-Methode schreibt QVariant-Datentyp in Windows-Registrierung

 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)); 

Nach der Ausführung habe ich den Registrierungswert gesteuert Ich sah, dass QVariant die Daten mit Typ wie Bild unten kapseln. Wie kann ich das verhindern?

Raw Data from registery
Written data

Antwort

0

Es ist not supported zur Zeit (und tatsächlich für lange Zeit) von Qt. Sie müssen dafür die systemeigenen Methoden WinAPI verwenden.