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

Qt

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

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

03.01.2017, 21:09. Просмотров 324. Ответов 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!
0
Миниатюры
Трудности с выводом данных из реестра  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2017, 21:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Трудности с выводом данных из реестра (C++ Qt):

Трудности с выводом данных из таблицы - PHP
Добрый день,требуется помощь в объяснении следующего вывода: p.s.скриншот таблицы прилагаю 0 приве name приве 1 0 na2 0 2 0 ...

Трудности с выводом большого количества данных - MS Access
Доброго времени суток ! Столкнулся с такой проблемой. Имеется база данных в access. В ней уже сделано много таблицы и забито много...

Трудности с выводом большого количества данных - Delphi БД
Доброго времени суток ! Столкнулся с такой проблемой. Имеется база данных в access. В ней уже сделано много таблицы и забито много...

Трудности с выводом bmp - C++ WinAPI
Здравствуйте. Не получается вывести картинку по клику на кнопку Собственно, как вывести это битмап я знаю, но у меня получается это...

Указаный файл не является файлом данных реестра, возможен импорт только двоичных файлов данных реестра - Windows XP
помогите пожалуйста , при загруске файла в системный реестр у меня выбивает ошибку , я не могу понять в чем дело . Вот образец ...

Внезапно возникшие трудности с выводом товаров - WordPress
Приветствую всех форумчан! Возникла проблема с наполнением магазина товарами. До этого наполнялось все без проблем. После...

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

Добавлено через 14 часов 55 минут
Есть идеи, народ?
0
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, или по другому подойти к проблеме, я пока в тупике.
Буду благодарен за любые советы или направление для размышлений, возможно примеры реализации.
0
Миниатюры
Трудности с выводом данных из реестра   Трудности с выводом данных из реестра   Трудности с выводом данных из реестра  

trdm
173 / 27 / 5
Регистрация: 29.01.2013
Сообщений: 176
04.01.2017, 14:18 #4
Гугл знает
Сам правда не пользуюсь.
0
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
04.01.2017, 15:34 #5
Почитайте тут:
Вопрос - Ответ для новичков по Qt
и тут:
Вопрос - Ответ для новичков по Qt
возможно поможет
0
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 дня сижу, програма есть, интерфейс, функционал, только это осталось.
0
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
04.01.2017, 17:58 #7
ну так гуглите, где в реестре находится нужная инфа и находится ли она там в принципе...

если мне склероз не изменяет, то инфа о панели пуск находится на ФС, а не в реестре..
0
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 вытянуть что-то еще не получается.
Может кто имел опыт работы с таким или подобным?
0
Maxim Prishchepa
Эксперт С++
1922 / 1034 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
05.01.2017, 11:37 #9
еще раз говорю, смотрите на файловой системе и не морочте голову:
для винды 8.1 путь: c:\ProgramData\Microsoft\Windows\Start Menu\Programs\
1
Wyn
Модератор
1045 / 627 / 231
Регистрация: 14.01.2016
Сообщений: 2,016
Записей в блоге: 9
06.01.2017, 14:05 #10
Цитата Сообщение от svadum Посмотреть сообщение
Есть идеи, народ?
Если у вас всё правильно там читает, то есть мнение, что у вас проблемы с кодировкой. Не забывайте что по умолчанию QString думает что везде хранится utf-8, в то время как Windows может хранить свои данные в другой кодировке.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.01.2017, 14:05
Привет! Вот еще темы с ответами:

Трудности с выводом текста в текстовые поля диалога - Visual C++
Я работаю в Visual C++ 2012. Есть класс CSourceNUDialog : public CDialog class CSourceNuDialog : public CDialog { //... ...

SELECT данных в реляционной базе MySQL с выводом данных внешнего ключа - MySQL
Например, есть MySQL и в ней бд - firma, в бд 3 таблицы - professions, fio, current_workers. В таблице &quot;professions&quot; - все...

1C 8.x (тонкий) Трудности при получении данных - 1С
В справочнике ВидМатериала находятся реквизиты Наименование, ПлотностьСырья и т.д. Процедура РасчетВеса данные по Диаметру и Длине...

Трудности с созданием базы данных в delphi - Delphi БД
Всем привет! Короче такая вот задумка есть две таблицы: 1-Личные данные с полями: 1) ID 2) FIO 3) God Rojdeniya 4)...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
06.01.2017, 14:05
Ответ Создать тему
Опции темы

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