Я занимаюсь разработкой программного обеспечения для Windows (от XP до 10 и выше) с Qt 5 C ++. На данный момент путь установки по умолчанию находится в C:\Users\Public\Kontiki
,
Тем не менее, я прочитал, что это не может быть хорошей практикой, и что я должен установить его в C:\ProgramFiles\Kontiki
,
Это то, что я планирую сделать.
Однако у меня есть две основные проблемы.
Файлы в моей папке установки включают в себя .exe, .dll и документацию.
Тем не менее, он также включает параметры пользователя (файлы .txt). Пользователь должен иметь возможность изменять эти параметры с помощью графического интерфейса в моей программе. Проблема в том, что когда мое программное обеспечение находится в ProgramFiles
, это не может быть сделано, так как у них нет прав на запись в ProgramFiles
, Что я должен сделать, это поместить файлы параметров .txt в AppData
, Итак, что бы я сделал, это:
$APPDATA
QStandardPaths::AppDataLocation
$APPDATA
всегда будет таким же, как тот, который возвращается Qt с QStandardPaths::AppDataLocation
, Например, возможно, в новой версии Windows будут какие-то различия или что-то еще. Может быть, это не законная проблема, но я хотел проверить.Если программа установлена в ProgramFiles
Возможно ли, что у меня будут некоторые проблемы с UAC (например, если пользователь не является администратором) или что-нибудь?
Спасибо большое за вашу помощь!
Если программа установлена в ProgramFiles
Пользователь может выполнить программу без каких-либо проблем (независимо от статуса администратора).
Но если приложение должно обновить какие-либо файлы (в вашем случае файлы с расширением .txt), любой каталог, который находится в учетной записи пользователя, является хорошим местом. Большинство приложений используют Documents
папка для таких сценариев.
И более того ProgramFiles
каталог не является специфическим для пользователя.
Может быть, хороший подход заключается в создании переменная среды пользователя для каталога вы хотите разместить файлы, которые вы хотите обновить (легко изменить в любых непредвиденных ситуациях). Прочитайте переменную среды в файле и приложении NSIS программно и используйте ее.
переменная окружения, например:
PROJECTDIR — C: \ Users ((USERID)) \ Documents \ projectDir
Других решений пока нет …