Как известно, класс 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
Естественно, оборачиваем весь код в условия для компилятора, поскольку код является платформозависимым в данном случае.