1

私のプログラムでは、いくつかの構成の詳細を.iniファイルに保存する必要があります。このプログラムは、IEとFirefoxの拡張機能もインストールします。また、これらの拡張機能からこれらの.iniファイルを読み取りたいと思います。.iniを「...AppData/ Roaming ...」のままにしておくと、保護モードのIE拡張機能は読み取り/書き込みできなくなります。私の知る限り、AppData/LocalLowのみがプロテクトモードでしか読み取ることができません。すべての構成の詳細をこの「...AppData/ LocalLoe ...」に移動すると、常に機能しますか?これは標準的な方法ですか?私が書いたものはすべてVistaコンテキストですが、XPで動作しますか?Win7?

4

2 に答える 2

0

プログラムデータのフォルダパスを取得するには、WinAPIを使用する必要があります。

wchar_t path_buf[MAX_PATH];
SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, &path_buf[0] );

Windows Vistaの関数では、SHGetFolderPathがSHGetKnownFoldedPathに置き換えられました。その古い関数は、SHGetKnownFolderPathの単なるラッパーになりました。

于 2009-07-20T07:14:23.710 に答える
0

この質問に対する私の答えを参照してください:ユーザーごとの状態を保存する場所を決定する方法は?レジストリ?アプリデータ?分離ストレージ?

そこから引用するには:

Vistaのユーザーの「ローミング」フォルダまたはXPの「アプリケーションデータ」内のファイルはユーザーと一緒に移動するため、設定とデータはすべてそこに保存する必要があります。

Vistaの「Local」と「LocalLow」およびXPの「LocalSettings」の下にあるファイルはそうではないので、一時ファイル、特定のコンピューターに関連付けられているもの、または再計算可能なデータに適した場所です。

Vistaでは、誰もが知っていて気に入っている新しいセキュリティ機能の一部として、プログラムを「低整合性モード」(たとえば、保護モードのIE)で実行できます。これらのプログラムは、権限が制限されて実行され、ファイルにアクセスできません。ユーザーのプロファイル-「LocalLow」フォルダーの下のファイルを除く。

したがって、結論として、「LocalLow」に保存されたファイルは本質的に安全ではなく、「Local」/「LocalSettings」のファイルは一部の大企業では利用できない可能性があります。 「ローミング」/「アプリケーションデータ」。

アップデート:

  1. プロファイルローミングが使用されている場合(大規模な協力環境)、LocalおよびLocalLowのコンテンツは通知なしに消えることがあります(そして消えます)。
  2. これらはすべてユーザーごとの設定です。サーバーがユーザーとは異なるアカウント(システムやネットワークなど)で実行されている場合、それらのフォルダーの異なるコピーを取得します。
于 2009-07-20T07:19:45.603 に答える