Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > чтение реестра в win7


Автор: s_a_s_h_a 28.1.2011, 16:29
Есть кусок кода, который отлично работает в win7 professional 32 (проверял на 10 компах) и есть одна машина (у админа  smile ) с win7 ultimate 64, на которой этот код уже не работает:

Код

QString user;
QSettings settings("HKEY_LOCAL_MACHINE\\Software", QSettings::NativeFormat);
user = settings.value("Microsoft/Windows/CurrentVersion/Authentication/LogonUI/LastLoggedOnUser").toString();


пробовал так
Код

QSettings settings("HKEY_LOCAL_MACHINE\\Software\\WOW6432Node", QSettings::NativeFormat);
user = settings.value("Microsoft/Windows/CurrentVersion/Authentication/LogonUI/LastLoggedOnUser").toString();


тоже не работает. Накидал код в билдере, чтобы проверить: проблема в Qt или в реестре. 
Аналогично не читается, точнее ключ как будто находит, но вместо конкретного значения получаю пустую строку.
Может кто сталкивался с такой проблемой? 

Кстати! вот это работает и на win 7 ultimate:
Код

QSettings rversion("HKEY_LOCAL_MACHINE\\Software", QSettings::NativeFormat);
QString version = rversion.value("Microsoft/Windows NT/CurrentVersion/ProductName").toString();


У меня есть ощущение, что этот вопрос надо в форуме по win задавать, но может здесь подскажите как проверять существует ключ реестра или не существует? есть доступ к нему или нет. Просто видел в доках Status QSettings::status () const, но
settings.status() и в первом и во втором случае 0 возвращает.

Автор: bsa 28.1.2011, 16:46
s_a_s_h_a, реестр это особенность винды. В отличие от ini файла (под который и написал QSettings) он поддерживает настройки безопасности. Кстати, а штатный редактор реестра позволяет посмотреть содержимое этого ключа без включение режима администратора?

Автор: s_a_s_h_a 28.1.2011, 17:07
в regedit'е под этим же пользователем можно посмотреть. UAC отключен.

Кстати, в прошлом посте забыл написать: QT 4.7.0 (32-x битный)

Автор: bsa 28.1.2011, 21:31
слинкуй с отладочной версией Qt и пройдись отладчиком.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)