Я занимаюсь разработкой приложения на C ++ с опцией "автозапуск".Когда пользователь установил эту опцию, программа должна изменить что-то в Windows, чтобы Windows запускалась при следующей загрузке Windows и входе пользователя в систему.Кроме того, когда пользователь отключил эту опцию, программа должна вернуть все в исходное состояние.
Мне не нужно запускать приложение как службу, так что этого будет достаточно для запуска под учетной записью определенного пользователя после входа в систему.Итак, каков лучший способ заставить Windows запускать мое приложение.при следующей загрузке и входе пользователя?Я погуглил совет использовать папку автозагрузки.Это самый приятный и безопасный способ?
Если так, у меня есть 2 вопроса:
- Как определить папку автозагрузки.Я не доволен выводом SHGetSpecialFolderLocation () .Кажется, он возвращает мой каталог "HOME" при тестировании платформы WinXP (C: \ Documents and settings \% username%).
- Как создать там файл .lnk с использованием C ++?Я думаю, что копировать весь файл .exe было бы плохой идеей.
На самом деле моя программа кроссплатформенная, но опция "автозапуск" будет только для Windows.
Обновление
Пробовал SHGetSpecialFolderLocation и получил хорошее значение в Windows7: "C: \ Users \ Pavel \ AppData \ Roaming \ Microsoft \ Windows \ Пуск \ Меню \ Программы \ Автозагрузка" УВЕДОМЛЕНИЕ: Если вы используете MinGW, вы должны определить _WIN32_IE для 0x0400, прежде чем включать ShlObj.h.
Какое наилучшее решение (с точки зрения хорошего программирования) между использованием реестра (HKEY_CURRENT_USER \Программное обеспечение \ Microsoft \ Windows \ CurrentVersion \ Run) и папка автозагрузки?