私のアプリケーションはHKEY_LOCAL_MACHINEのレジストリに書き込むので、マニフェストファイルを使用してUAC機能を利用します。ただし、ユーザーのAppDataフォルダーにデータを書き込むと(UACダイアログプロンプトが表示された後)、データは現在のユーザーのAppDataフォルダーではなく、管理者のAppDataフォルダーに書き込まれます。データを正しいパスに書き込みたい場合、どうすればよいですか?
1 に答える
0
アプリケーションを起動する現在のユーザーはAdministratorsグループに含まれていますか?UACプロンプトを見るとわかります。ユーザーがAdministratorsグループに属している場合、ダイアログは簡単な確認です。[はい]または[いいえ]。ユーザーがAdministratorsグループに属していない場合、ダイアログは管理者の資格情報(ユーザー名とパスワード)の入力を求めます。(同意UIとクレデンシャルUIのスクリーンショット)。
- ユーザーは管理者グループに属し
ます次に、[はい]ボタンをクリックすると、同じユーザーのコンテキストでアプリケーションが起動されますが、完全な管理者トークンが有効になっています。 - ユーザーがAdministratorsグループに属していないユーザーが
管理者のアカウント名とパスワードを入力すると、アプリケーションは別のユーザーのコンテキストで起動されます。したがって、すべてのユーザー固有の設定は、最初にアプリケーションを開始したユーザーではなく、その管理者ユーザーのレジストリとAppDataに書き込まれます。
したがって、グローバル設定をHKLMに書き込み、ローカル設定を現在のユーザーのプロファイルに書き込みたい場合は、HKLMに書き込む部分のみを昇格して実行しました。
于 2011-08-12T18:28:10.427 に答える