Як відомо, клас QSettings дозволяє зберігати налаштування програми у реєстрі ОС Windows . Завдяки такій можливості та гарному знанню роботи реєстру Windows можна додати програму в автозапуск, або видалити її звідти через, наприклад, діалог налаштувань програми. Для цього можна скористатися чекбоксом, і у випадку, якщо він позначений, то по кліку по кнопці підтвердження в діалоговому вікні записати програму в автозапуск, інакше видалити його з автозапуску.
У будь-якому випадку все зводиться до двох дій.
Записуємо програму в автозапуск
#ifdef Q_OS_WIN32 QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); settings.setValue(APPLICATION_NAME, QDir::toNativeSeparators(QCoreApplication::applicationFilePath())); settings.sync(); #endif
Видаляємо програму з автозапуску
#ifdef Q_OS_WIN32 QSettings settings("HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", QSettings::NativeFormat); settings.remove(APPLICATION_NAME); #endif
Звичайно, обертаємо весь код в умови для компілятора, оскільки код є платформозалежним у цьому випадку.