0

私のアプリケーションはHKEY_LOCAL_MACHINEのレジストリに書き込むので、マニフェストファイルを使用してUAC機能を利用します。ただし、ユーザーのAppDataフォルダーにデータを書き込むと(UACダイアログプロンプトが表示された後)、データは現在のユーザーのAppDataフォルダーではなく、管理者のAppDataフォルダーに書き込まれます。データを正しいパスに書き込みたい場合、どうすればよいですか?

4

1 に答える 1

0

アプリケーションを起動する現在のユーザーはAdministratorsグループに含まれていますか?UACプロンプトを見るとわかります。ユーザーがAdministratorsグループに属している場合、ダイアログは簡単な確認です。[はい]または[いいえ]。ユーザーがAdministratorsグループに属していない場合、ダイアログは管理者の資格情報(ユーザー名とパスワード)の入力を求めます。(同意UIクレデンシャルUIのスクリーンショット)。

  1. ユーザー管理者グループに属し
    ます次に、[はい]ボタンをクリックすると、同じユーザーのコンテキストでアプリケーションが起動されますが、完全な管理者トークンが有効になっています。
  2. ユーザーAdministratorsグループに属していないユーザーが
    管理者のアカウント名とパスワードを入力すると、アプリケーションは別のユーザーのコンテキストで起動されます。したがって、すべてのユーザー固有の設定は、最初にアプリケーションを開始したユーザーではなく、その管理者ユーザーのレジストリとAppDataに書き込まれます。

したがって、グローバル設定をHKLMに書き込み、ローカル設定を現在のユーザーのプロファイルに書き込みたい場合は、HKLMに書き込む部分のみを昇格して実行しました。

于 2011-08-12T18:28:10.427 に答える