AusweisApp2/src/settings/AutoStart_win.cpp

65 lines
1.4 KiB
C++
Raw Normal View History

2017-12-20 14:54:05 +01:00
/*!
2018-03-28 15:10:51 +02:00
* \copyright Copyright (c) 2014-2018 Governikus GmbH & Co. KG, Germany
2017-12-20 14:54:05 +01:00
*/
#include "AutoStart.h"
#include <QCoreApplication>
#include <QSettings>
#include <QString>
using namespace governikus;
2018-03-28 15:10:51 +02:00
namespace
{
static QString appPath()
{
QString applicationFilePath = QCoreApplication::applicationFilePath();
applicationFilePath.replace(QLatin1Char('/'), QLatin1Char('\\'));
applicationFilePath = QLatin1Char('"') + applicationFilePath + QLatin1Char('"');
return applicationFilePath;
}
static QString registryPath()
{
return QStringLiteral("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run");
}
}
2017-12-20 14:54:05 +01:00
bool AutoStart::enabled()
{
2018-03-28 15:10:51 +02:00
QSettings windowsBootUpSettings(registryPath(), QSettings::NativeFormat);
if (!windowsBootUpSettings.contains(QCoreApplication::applicationName()))
{
return false;
}
if (windowsBootUpSettings.value(QCoreApplication::applicationName(), QString()).toString() != appPath())
{
// Update entries from previous versions, e.g.
// C:\Program Files (x86)\AusweisApp2 1.13.0 -> C:\Program Files (x86)\AusweisApp2 1.14.0
set(true);
}
return true;
2017-12-20 14:54:05 +01:00
}
void AutoStart::set(bool pEnabled)
{
2018-03-28 15:10:51 +02:00
QSettings windowsBootUpSettings(registryPath(), QSettings::NativeFormat);
2017-12-20 14:54:05 +01:00
if (pEnabled)
{
2018-03-28 15:10:51 +02:00
windowsBootUpSettings.setValue(QCoreApplication::applicationName(), appPath());
2017-12-20 14:54:05 +01:00
}
else
{
windowsBootUpSettings.remove(QCoreApplication::applicationName());
}
}