Windows7+VB2010で、ProgramFilesのファイルに書き込むために、
マニフェストファイルをlevel="requireAdministrator"を書いたところ、実行時に、
「このタスクを実行するには、アプリケーションのアクセス許可を引き上げる必要があります。」
とのメッセージが出ます。
ユーザーアカウント制御の設定を変更する以外の方法で、このメッセージを出さなくしたいです。
そんな方法、あるのでしょうか?
requireAdministrator
は通常保護された部分へのアクセスを可能にするので
UACのメッセージが表示されます。
requireAdministratorはやめて
ProgramFilesへの書込みもやめるか、
ProgramFilesの特定のフォルダ配下のアクセス権限を変更する必要があります。
後者の場合、使用者にその事がわかるようにするべきでしょう。アプリケーションでこの設定を行うとしたら1度はrequireAdministratorで実行する必要があります。
もちろん前者が推奨です。
%ProgramFiles%に書き込みたい理由は何でしょうか。
・基本的に設定やデータはユーザーごとに用意し,%AppData%または%LocalAppData%に保存します
・全体の設定はインストーラーで設定し,%AllUsersProfile%に保存します
・全体の設定をインストール後に弄る必要がある場合は,%AllUsersProfile%にある設定を弄ります
・%ProgramFiles%以下への書き込みは,原則としてインストーラーが行うべきです。
SQL Serverなどは書き込みますが (MSSQL10.MSSQLSERVER\MSSQL\DATAなど),専用のディレクトリ (DATA) を作って,ACLを変更するようになっています。
%ProgramFiles%にユーザーデータを書き込むな,というのはMSDNにも書いてある事項です。
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776776
> Do not store user data under the Program Files folder.
%ProgramFiles%への書き込みをやめました。
ありがとうございました。
ツイート | ![]() |