1

教えてください。「Settings.ini」を使用して設定を保存するアプリケーションを作成しました。アプリケーションは InnoSetup を使用してインストールされます。複数のユーザー アカウントがあり、そのうちの 1 つにアプリケーションがインストールされている場合、別のアカウントからアプリケーションを実行しようとすると、「... に書き込めません」というエラーが表示されます。つまり、別のアカウントから実行した場合、アプリケーションには設定ファイルに書き込む権限がありません。Windows XP で何が起こるかはわかりませんが、それが Windows 7 でのアプリケーションの動作です。複数のユーザーに対して動作させるためにアプリケーションで定義する必要があるものはありますか、それとも変更する必要がありますか?インストール、InnoSetup パラメータのどこかに? ありがとうございました。

4

1 に答える 1

1

プログラム自体を Program Files またはその他の一般的なフォルダーにインストールする必要があります。このフォルダーには、すべてのユーザーが読み取りと実行の権限を持ちますが、書き込みや削除はできません。通常、インストーラーはフォルダーを上書きすることを許可しますが、ルールは残ります。すべてのユーザーは、非破壊的な権限 (読み取りと実行) と、破壊的な権限 (削除、上書き) を持たない必要があります。

つまり、インストーラーは管理者権限と UAC 昇格を要求する必要があります。その方法については、InnoSetup フォーラムまたはドキュメントに問い合わせてください。マニフェストリソースをインストーラーに含めることを扱う場合があります。通常のユーザーがインストーラーを実行し、インストーラーを実行してから、管理者権限を持つ別のユーザー名とパスワードを要求するのは正常です。


設定およびその他のユーザー固有のデータは、特別なユーザーごとのデータ フォルダーに保存する必要があります。通常、それはユーザー プロファイルの下の AppLocal フォルダーです。ただし、インストーラーではなく、アプリケーションのタスクです。インストーラーはグローバル設定テンプレートを作成する場合があり、アプリケーションは特定のユーザーでの最初の実行時にユーザーローカル設定にコピーするか、カスケード設定ストレージが実装されている場合はユーザーローカル設定によって上書きされます。

コマンド プロンプトを実行し、コマンドを発行します。set必要なすべてのパスが、AppPath、LocalAppPath、UserProfile などの名前を持つ環境変数として表示されます。

于 2013-01-18T10:29:56.080 に答える