NSISを使用して標準のWindowsユーザーにアプリケーションファイルをインストールします

トッテカールソン

実行するためにSQLiteDBを必要とするアプリケーションがあります。私のNSISスクリプトでは、DBはユーザーのLocal / AppDataフォルダーにコピーされます。プログラムをインストールするユーザーが管理者ユーザーである場合、これは正常に機能します。

ただし、標準ユーザーがプログラムをインストールしようとすると、インストーラーは管理者パスワードを要求し(標準ユーザーはWindowsにプログラムをインストールできないため)、インストールしているユーザーは管理者に切り替えられ、DBがにインストールされます。実際のユーザーのAppDataフォルダーではなく、admins Local / AppDataフォルダー。

したがって、実際には、標準ユーザーがプログラムを実行しようとすると、DBが見つかりません。

この状況に対処する方法がわからず(ベストプラクティスがある場合)、それに答える質問が見つかりません。

インストーラーはDBをAllUsersなどのパブリックな場所にドロップし、最初の実行時にDBをそこから独自のAppDataフォルダーにコピーする必要がありますか?

allusersフォルダーの問題は、誰でもそのフォルダーを覗き込んだり、ファイルを削除したりできることだと私には思えます。

異なる

標準ユーザーはアプリケーションをインストールできます。$ LocalAppdata \ Programs \ MyApp(FOLDERID_UserProgramFiles)の下にプログラムをインストールし、の下にアンインストール情報を書き込みますHKCUNSISには、1つのインストーラーで両方のタイプのインストールモードをサポートする場合に役立つ特別なSHCTXレジストリルート(によって制御されるSetShellVarContext)があります。

ユーザーに常に管理者に昇格させる場合は、データベースのテンプレート/基本バージョンをAllUsers appdata(Vista +ではProgramDataと呼ばれます)(SetShellVarContext all+ $AppData)またはCommon ProgramFiles($COMMONFILES)フォルダーに保存することをお勧めします。アプリケーションは、特定のユーザーの最初の実行時にコピーを作成します。これらの場所にあるファイルを削除できるのは管理者だけです。ほとんどのユーザーは読み取りアクセス権を持っていますが、ファイルにユーザー固有の情報が含まれていてはならないため、これは問題ではありません。

これらの推奨事項は、Windowsデスクトップアプリの認定要件または古いWindowsロゴ要件のドキュメントに記載されています。

10.3コンピューター上のユーザー間で共有する必要があるアプリデータは、ProgramData内に保存する必要があります

10.4特定のユーザー専用で、コンピューターの他のユーザーと共有されないアプリのデータは、Users \\ AppDataに保存する必要があります

10.6アプリは、「マシンごと」のインストールではなく、最初の実行時にユーザーデータを書き込む必要があります

アプリをインストールすると、データを保存する正しいユーザーの場所がありません。インストール後にマシンレベルでデフォルトの関連付け動作を変更しようとするアプリの試みは失敗します。代わりに、デフォルトはユーザーごとのレベルで要求する必要があります。これにより、複数のユーザーが互いのデフォルトを上書きするのを防ぐことができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

FreeDesktop標準に準拠しながら、ユーザー固有のアプリケーションのアイコンをどこにインストールしますか?

分類Dev

PowerPointアプリケーションでVBAを使用して、「PPTX」形式のファイルを「SVG」形式のファイルにエクスポートします

分類Dev

ユーザーがアプリケーションをアンインストールした後、すべてのUILocalNotificationsを削除します

分類Dev

Ubuntuの場合は、bashファイルを使用してインストールされているアプリケーションを確認します

分類Dev

ホワイト リストを使用して Windows 10 展開でユーザー ベースのアプリケーションを有効にする

分類Dev

.txtファイルにユーザーIDとパスワードがあります。ファイル内のクレデンシャルを使用して複数のユーザーにメールを送信するスクリプトを作成したい

分類Dev

Windowsインストーラーは、ファイルを削除した後もアプリケーションを再インストールし続けます

分類Dev

ユーザーがInstallShieldを使用してアプリケーションをアンインストールするときにexeファイルを実行する方法

分類Dev

AssetsWindowsストアアプリケーションからすべてのファイルを取得します

分類Dev

ユーザー入力なしでアプリケーションをアンインストールする

分類Dev

アプリケーションをインストールしたすべてのユーザーにFCM通知を送信する

分類Dev

PHPクラウドストレージアプリケーションは、ユーザーごとに新しいテーブルを作成し、ユーザーファイルごとに行を作成する必要がありますか?

分類Dev

すべての依存関係を.Net標準ライブラリから.NetFrameworkコンソールアプリケーションにコピーします

分類Dev

新しいcsファイルをオンザフライで追加して、実行中のアプリケーションにロードしますか?

分類Dev

Windowsアプリケーションc#を使用してテキストファイルをmysqlにアップロードする

分類Dev

すべてのユーザーにWindowsストアアプリパッケージ(* .appx)をインストールします

分類Dev

デフォルトのリソースファイルを使用するようにMVCWebアプリケーションを作成します

分類Dev

lodashスロットルを使用して、アプリケーションからのユーザーの自動ログアウトを使用して、しばらくの間マウスイベントをスロットルします

分類Dev

Pythonを使用してWindowsのファイル拡張子にデフォルトのアプリケーションをマップする方法

分類Dev

ユーザーがインストールしたすべてのアプリケーションのリストを取得することは可能ですか?

分類Dev

tizenスタジオで証明書のプロファイルを使用してアプリケーションパッケージに署名します

分類Dev

アプリケーションのインストールのみをユーザーに許可する

分類Dev

アプリケーションのインストールのみをユーザーに許可する

分類Dev

添付ファイルが事前に添付された状態でユーザーの標準メールクライアントを起動します

分類Dev

Windows10が使用しているアプリケーションを別のPCにインストールしないようにします

分類Dev

cmdアプリケーションのレジストリからファイルインストールパスを取得しています

分類Dev

Railsアプリケーションにサインアップしたユーザーにメールのリストを送信する

分類Dev

Windows Server2019のIISにASP.NETアプリケーションをインストールします

分類Dev

フラスコアプリケーションのログファイルにユーザーIPとユーザーIDを追加する

Related 関連記事

  1. 1

    FreeDesktop標準に準拠しながら、ユーザー固有のアプリケーションのアイコンをどこにインストールしますか?

  2. 2

    PowerPointアプリケーションでVBAを使用して、「PPTX」形式のファイルを「SVG」形式のファイルにエクスポートします

  3. 3

    ユーザーがアプリケーションをアンインストールした後、すべてのUILocalNotificationsを削除します

  4. 4

    Ubuntuの場合は、bashファイルを使用してインストールされているアプリケーションを確認します

  5. 5

    ホワイト リストを使用して Windows 10 展開でユーザー ベースのアプリケーションを有効にする

  6. 6

    .txtファイルにユーザーIDとパスワードがあります。ファイル内のクレデンシャルを使用して複数のユーザーにメールを送信するスクリプトを作成したい

  7. 7

    Windowsインストーラーは、ファイルを削除した後もアプリケーションを再インストールし続けます

  8. 8

    ユーザーがInstallShieldを使用してアプリケーションをアンインストールするときにexeファイルを実行する方法

  9. 9

    AssetsWindowsストアアプリケーションからすべてのファイルを取得します

  10. 10

    ユーザー入力なしでアプリケーションをアンインストールする

  11. 11

    アプリケーションをインストールしたすべてのユーザーにFCM通知を送信する

  12. 12

    PHPクラウドストレージアプリケーションは、ユーザーごとに新しいテーブルを作成し、ユーザーファイルごとに行を作成する必要がありますか?

  13. 13

    すべての依存関係を.Net標準ライブラリから.NetFrameworkコンソールアプリケーションにコピーします

  14. 14

    新しいcsファイルをオンザフライで追加して、実行中のアプリケーションにロードしますか?

  15. 15

    Windowsアプリケーションc#を使用してテキストファイルをmysqlにアップロードする

  16. 16

    すべてのユーザーにWindowsストアアプリパッケージ(* .appx)をインストールします

  17. 17

    デフォルトのリソースファイルを使用するようにMVCWebアプリケーションを作成します

  18. 18

    lodashスロットルを使用して、アプリケーションからのユーザーの自動ログアウトを使用して、しばらくの間マウスイベントをスロットルします

  19. 19

    Pythonを使用してWindowsのファイル拡張子にデフォルトのアプリケーションをマップする方法

  20. 20

    ユーザーがインストールしたすべてのアプリケーションのリストを取得することは可能ですか?

  21. 21

    tizenスタジオで証明書のプロファイルを使用してアプリケーションパッケージに署名します

  22. 22

    アプリケーションのインストールのみをユーザーに許可する

  23. 23

    アプリケーションのインストールのみをユーザーに許可する

  24. 24

    添付ファイルが事前に添付された状態でユーザーの標準メールクライアントを起動します

  25. 25

    Windows10が使用しているアプリケーションを別のPCにインストールしないようにします

  26. 26

    cmdアプリケーションのレジストリからファイルインストールパスを取得しています

  27. 27

    Railsアプリケーションにサインアップしたユーザーにメールのリストを送信する

  28. 28

    Windows Server2019のIISにASP.NETアプリケーションをインストールします

  29. 29

    フラスコアプリケーションのログファイルにユーザーIPとユーザーIDを追加する

ホットタグ

アーカイブ