Путь установки в ProgramFiles: некоторые проблемы

Я занимаюсь разработкой программного обеспечения для Windows (от XP до 10 и выше) с Qt 5 C ++. На данный момент путь установки по умолчанию находится в C:\Users\Public\Kontiki,
Тем не менее, я прочитал, что это не может быть хорошей практикой, и что я должен установить его в C:\ProgramFiles\Kontiki,
Это то, что я планирую сделать.

Однако у меня есть две основные проблемы.

Концерн 1

Файлы в моей папке установки включают в себя .exe, .dll и документацию.
Тем не менее, он также включает параметры пользователя (файлы .txt). Пользователь должен иметь возможность изменять эти параметры с помощью графического интерфейса в моей программе. Проблема в том, что когда мое программное обеспечение находится в ProgramFiles, это не может быть сделано, так как у них нет прав на запись в ProgramFiles, Что я должен сделать, это поместить файлы параметров .txt в AppData, Итак, что бы я сделал, это:

  1. При установке (с установщиком NSIS) я бы записал файлы параметров .txt в $APPDATA
  2. В моей программе Qt я получал бы доступ к этим параметрам .txt с помощью QStandardPaths::AppDataLocation
    Все это говорит о том, что меня беспокоит то, что я не уверен, что путь от установщика NSIS $APPDATA всегда будет таким же, как тот, который возвращается Qt с QStandardPaths::AppDataLocation, Например, возможно, в новой версии Windows будут какие-то различия или что-то еще. Может быть, это не законная проблема, но я хотел проверить.

Концерн 2

Если программа установлена ​​в ProgramFilesВозможно ли, что у меня будут некоторые проблемы с UAC (например, если пользователь не является администратором) или что-нибудь?

Спасибо большое за вашу помощь!

0

Решение

Если программа установлена ​​в ProgramFilesПользователь может выполнить программу без каких-либо проблем (независимо от статуса администратора).

Но если приложение должно обновить какие-либо файлы (в вашем случае файлы с расширением .txt), любой каталог, который находится в учетной записи пользователя, является хорошим местом. Большинство приложений используют Documents папка для таких сценариев.

И более того ProgramFiles каталог не является специфическим для пользователя.

Может быть, хороший подход заключается в создании переменная среды пользователя для каталога вы хотите разместить файлы, которые вы хотите обновить (легко изменить в любых непредвиденных ситуациях). Прочитайте переменную среды в файле и приложении NSIS программно и используйте ее.

переменная окружения, например:

PROJECTDIR — C: \ Users ((USERID)) \ Documents \ projectDir

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]