2017-02-21 6 views
0

J'essaie de mettre à jour les paramètres FTDI du registre Windows. Je peux lire et modifier les valeurs ConfigData du registre et modifier certaines valeurs en les convertissant en QByteArray.QSettings méthode setvalue écrit le type de données QVariant dans le registre Windows

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

Après l'exécution, j'ai controlée la valeur de Registre j'ai vu que les données QVariant encapsulent avec le type comme l'image ci-dessous. Comment puis-je empêcher cela?

Raw Data from registery
Written data

Répondre

0

Il est actuellement not supported (et en fait depuis longtemps) par Qt. Pour ce faire, vous devez utiliser des méthodes natives WinAPI.