cacic_software.cpp
2.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "cacic_software.h"
cacic_software::cacic_software()
{
}
void cacic_software::iniciaColeta()
{
#ifdef Q_OS_WIN
this->coletaSoftware = coletaWin();
#else
this->coletaSoftware = coletaLinux();
#endif
}
QJsonObject cacic_software::coletaWin()
{
QJsonObject softwaresJson;
QStringList regedit;
regedit.append("HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall");
regedit.append("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall");
foreach(QString registry, regedit){
QSettings softwares(registry, QSettings::NativeFormat);
// qDebug() << softwares.childGroups();
foreach (QString group, softwares.childGroups()){
QVariantMap software;
softwares.beginGroup(group);
qDebug() << softwares.fileName() << softwares.value("DisplayName");
if (!softwares.value("DisplayName").isNull())
software["DisplayName"] = softwares.value("DisplayName");
if (!softwares.value("Publisher").isNull())
software["Publisher"] = softwares.value("Publisher");
if (!softwares.value("InstallLocation").isNull())
software["InstallLocation"] = softwares.value("InstallLocation");
if (!softwares.value("InstallDate").isNull())
software["InstallDate"] = softwares.value("InstallDate");
if (!softwares.value("URLInfoAbout").isNull())
software["URLInfoAbout"] = softwares.value("URLInfoAbout");
if (!softwares.value("UninstallString").isNull())
software["UninstallString"] = software.value("UninstallString");
if (!softwares.value("QuietUninstallString").isNull())
software["QuietUninstallString"] = software.value("QuietUninstallString");
softwares.endGroup();
softwaresJson[group] = QJsonObject::fromVariantMap(software);
}
// qDebug() << softwaresJson;
}
return softwaresJson;
}
void cacic_software::coletaLinux()
{
}
QJsonObject cacic_software::toJsonObject()
{
return coletaSoftware;
}