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