2009-07-07 2 views
6

Я хочу прочитать реестр, чтобы найти текущую версию PowerPoint.Как узнать значение реестра Windows (по умолчанию) с помощью QSettings?

Однако это только возвращает ноль:

QSettings settings("HKEY_CLASSES_ROOT\\PowerPoint.Application\\CurrVer", 
        QSettings::NativeFormat); 

QString sReturnedValue = settings.value("(Default)", "0").toString(); 

Любые предложения о том, как я получаю значение из ключа (по умолчанию)?

ответ

10

Хорошо, только что понял. Пока regedit показывает это как (по умолчанию), вы просто прочитали его как значение по умолчанию.

QString sReturnedValue = settings.value("Default", "0").toString(); 

Благодарим за прослушивание.

+1

Для большинства вещей, «» означает, что ключ по умолчанию, я не вижу, как «по умолчанию» может работать, что происходит, когда есть реальное значение имени по умолчанию в тот же ключ? – Anders

+1

Qt имеет утверждение в QSettings на key.isEmpty() –

+0

[docs for QSettings.value] (http://qt-project.org/doc/qt-5.0/qtcore/qsettings.html#value) говорит ** предоставление второй аргумент возвращает второй аргумент как значение по умолчанию, если он не может найти ключ. ** Это совсем не то, о чем просил этот вопрос. –

4

Кроме того, период работы:

RegReader.value(".", NULL).toString(); 
Смежные вопросы