2

ユーザーが出力セッションをテキスト ファイルに保存できるプログラムがあります。これは問題なく動作しますが、ファイルを などの場所に保存しようとすると、次のようなC:\エラー ダイアログが表示されます。

You don't have permission to save to this location. Contact the administrator to obtain permission. Would you like to save to the Documents folder instead?

いいえをクリックすると、操作がキャンセルされるだけだと思って、アプリケーションがクラッシュします。アプリケーションに管理者特権を要求したくありませんが、ファイルを保存しようとするときに、ユーザーに特権を提供するように求める方法 (UAC ダイアログを表示する、必要に応じて認証を提供するなど)。ユーザーがアクセス許可を提供できない場合、ユーザーが保存するアクセス許可を持つ場所を選択するか、キャンセルを押すまで、ファイルの保存ダイアログにとどまりたいと思います。ユーザーがアクセス許可が必要な場所にファイルを保存するときだけに、プログラムの起動時に許可を求められることを本当に望んでいません。

ところで、私は現在、アプリケーションを実行するときに管理者としてログインしています。これは、Windows Vista を実行しているコンピューターで唯一のアカウントです。

4

2 に答える 2

4

アプリケーションは起動時にのみ昇格します。「実行中に必要な場合にのみ UAC 特権を取得する」ことをシミュレートするには、実際にアプリをパーティション分割して、2 番目のプロセス (ファイルへの書き込みなど) を起動し、このプロセスが昇格して起動されるようにする必要があります。これを行うことはできますが、ほとんどまたはまったくメリットがないため、多くの作業が必要です。

UAC の要点は、ユーザーとアプリケーションがハード ドライブを扱う方法を変更することです。C のルートは、物事を書くのに適した場所ではありません。AppData または Documents を使用するか、C:\MySpecialApp のような独自のフォルダーを作成し (構成ファイルへのパスを追加)、そこに書き込みます。C のルートに書き込もうとすると、あまり意味のない管理者特権が必要になります。

于 2012-10-10T13:42:57.907 に答える
-1

次の手順を実行します:

  1. ドライブを右クリックして [プロパティ] を選択し、[セキュリティ] タブに移動して [編集] をクリックします。

  2. 新しいウィンドウが開きます。[グループとユーザー名] の下で、特定のフォルダーへのアクセスを拒否/許可するユーザーをリストから選択します。[ユーザーのアクセス許可] の下で、[変更] の横にある [拒否/許可] チェックボックスをオンにします。 (他のすべてのチェックボックスは自動的にチェックされます)。

  3. [OK] をクリックし、[Windows セキュリティ] ウィンドウがポップアップ表示されたら [はい] をクリックします。

  4. もう一度 [OK] をクリックすると完了です

于 2014-12-30T02:10:06.930 に答える