Форум программистов, компьютерный форум CyberForum.ru

Qt

Войти
Регистрация
Восстановить пароль
 
svadum
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 24
#1

Трудности с выводом данных из реестра - C++ Qt

03.01.2017, 21:09. Просмотров 272. Ответов 9

Всем привет.
Такая проблема: я работаю с реестром через QSettings в Qt,
код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\UserAssist",
                       QSettings::NativeFormat);
 
    QStringList allKeys = settings.allKeys();
 
    for(int i = 0; i < allKeys.size(); i++)
    {
        cout << settings.value(allKeys[i]).toString();
    }
но при выводе я получаю это(прикрепил фото):

хотя по логике в этом ключе должен быть список самых используемых программ
(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist)
который я и хочу вытащить, и вывести в свою форму.
HELP!
Миниатюры
Трудности с выводом данных из реестра  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2017, 21:09     Трудности с выводом данных из реестра
Посмотрите здесь:

есть трудности с записью текста в файл C++ Qt
Трудности динамического перевода константных строк в различных окнах C++ Qt
C++ Qt Трудности с QTimer
QT для Visual Studio 2013 - трудности установки C++ Qt
Редактор реестра C++ Qt
Вставка данных в базу данных C++ Qt
Отображение данных из базы данных C++ Qt

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
svadum
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 24
04.01.2017, 12:11  [ТС]     Трудности с выводом данных из реестра #2
или возможно есть другой вариант для решения моей проблемы (список самых используемых программ который я и хочу вытащить, и вывести в свою форму).
Буду благодарен за любые советы.

Добавлено через 14 часов 55 минут
Есть идеи, народ?
svadum
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 24
04.01.2017, 13:59  [ТС]     Трудности с выводом данных из реестра #3
Всед доброго времени суток!
Работаю через QSettings, хочу достать топ программ Win и вывести в форму.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 QTextStream cout(stdout);
 
    QSettings *set =
            new QSettings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\UserAssist\\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}",
                          QSettings::NativeFormat);
 
    QStringList list = set->allKeys();
    
    cout << list.size();
 
    for(int i = 0; i < list.size(); i++)
    {
        cout << set->value(list[i]).toString();
    }
только вот если хочу взять через set->value(list[i]).toString() значение реестра, получаем это(скрин 1 "c toString()"):

а если через просто out << list[i] << endl;(скрин 2 "без ->value и toString()), получаем уже что-то похожее на список программ (закодирован, конечно, в Rot13, но это не проблема я написал декодер) проблема в том, как об этом "вытянуть" топ или как из этого списка сделать топ, а для этого нужны значение полей countов ( количество запусков, время в фокусе программы и т.д.), но на данный момент я не понимаю, как это реализовать по другому.

И еще пример того почему я вообще думаю, што это все реально "достать" и сделать (скрин 3, программа UserAssist).
Возможно мне нужно использовать QSettings, а WinApi, или по другому подойти к проблеме, я пока в тупике.
Буду благодарен за любые советы или направление для размышлений, возможно примеры реализации.
Миниатюры
Трудности с выводом данных из реестра   Трудности с выводом данных из реестра   Трудности с выводом данных из реестра  

trdm
172 / 26 / 4
Регистрация: 29.01.2013
Сообщений: 161
04.01.2017, 14:18     Трудности с выводом данных из реестра #4
Гугл знает
Сам правда не пользуюсь.
Maxim Prishchepa
Эксперт С++
1919 / 1031 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
04.01.2017, 15:34     Трудности с выводом данных из реестра #5
Почитайте тут:
Вопрос - Ответ для новичков по Qt
и тут:
Вопрос - Ответ для новичков по Qt
возможно поможет
svadum
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 24
04.01.2017, 17:37  [ТС]     Трудности с выводом данных из реестра #6
trdm,
этот вариант я уже пробовал.
путь данного ключа не подходит, наиболее употребительные программы находятся
(HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ UserAssist)
и по значениям этого ключа надо как-то сделать или вывести из него топ программ, хотя бы ты отображаемых в панели пуск
Maxim Prishchepa,
спасибо, Вам, но я пробовал изменить кодировку, по сути я перепробовал их все и понял, что проблема не в ней, а в возможно методе чтения или же ключе
есть идеи по поводу этого(надо как-то сделать или вывести из него топ программ, хотя бы ты отображаемых в панели пуск)?
просто уже 2 дня сижу, програма есть, интерфейс, функционал, только это осталось.
Maxim Prishchepa
Эксперт С++
1919 / 1031 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
04.01.2017, 17:58     Трудности с выводом данных из реестра #7
ну так гуглите, где в реестре находится нужная инфа и находится ли она там в принципе...

если мне склероз не изменяет, то инфа о панели пуск находится на ФС, а не в реестре..
svadum
0 / 0 / 0
Регистрация: 04.06.2016
Сообщений: 24
04.01.2017, 18:32  [ТС]     Трудности с выводом данных из реестра #8
Maxim Prishchepa,
Цитата Сообщение от rao Посмотреть сообщение
Для получения списка инсталлированного ПО читай ветвь реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Uninstall
(Как перечислить программные продукты, которые могут быть удалены с компьютера)
Список самых используемых программ храниться в ключе реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
(Windows 7 – MFU (Most Frequent Used Programs))
а ФС, вы имеете в виду файловая система?
Да, я сначала тоже так думал, но на форуме дали наводку на реестр, гугл отвечал то же или давал силки на UserAssist, а она свою очередь использую ветку UserAssists, поэтому по логике должно быть в реестре, только пока кроме названий софта закодированных в Rot13 вытянуть что-то еще не получается.
Может кто имел опыт работы с таким или подобным?

Добавлено через 15 секунд
Maxim Prishchepa,
Цитата Сообщение от rao Посмотреть сообщение
Для получения списка инсталлированного ПО читай ветвь реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Uninstall
(Как перечислить программные продукты, которые могут быть удалены с компьютера)
Список самых используемых программ храниться в ключе реестра:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
(Windows 7 – MFU (Most Frequent Used Programs))
а ФС, вы имеете в виду файловая система?
Да, я сначала тоже так думал, но на форуме дали наводку на реестр, гугл отвечал то же или давал силки на UserAssist, а она свою очередь использую ветку UserAssists, поэтому по логике должно быть в реестре, только пока кроме названий софта закодированных в Rot13 вытянуть что-то еще не получается.
Может кто имел опыт работы с таким или подобным?
Maxim Prishchepa
Эксперт С++
1919 / 1031 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
05.01.2017, 11:37     Трудности с выводом данных из реестра #9
еще раз говорю, смотрите на файловой системе и не морочте голову:
для винды 8.1 путь: c:\ProgramData\Microsoft\Windows\Start Menu\Programs\
Wyn
Модератор
931 / 512 / 193
Регистрация: 14.01.2016
Сообщений: 1,690
Записей в блоге: 9
06.01.2017, 14:05     Трудности с выводом данных из реестра #10
Цитата Сообщение от svadum Посмотреть сообщение
Есть идеи, народ?
Если у вас всё правильно там читает, то есть мнение, что у вас проблемы с кодировкой. Не забывайте что по умолчанию QString думает что везде хранится utf-8, в то время как Windows может хранить свои данные в другой кодировке.
Yandex
Объявления
06.01.2017, 14:05     Трудности с выводом данных из реестра
Ответ Создать тему
Опции темы

Текущее время: 06:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru