これは私を夢中にさせます。私はStackOverflow全体を検索し、UACについてすべて読みました。しかし、私はまだ問題に直面しています。
VS 2008 を使用して、これだけを行う単純なプログラムを作成しました。
File.Delete("c:\windows\fonts\whatever.ttf")
EXE には、requireAdministrator=True の適切なマニフェストがあります。コンパイルすると、アプリ アイコンは盾のアイコンを受け取ります。そして、管理者または標準ユーザーとしてログインしてアプリケーションを起動すると、「次のプログラムで変更を行いますか...」という確認ダイアログが表示されます。さらに、EXE でコード署名証明書を使用します。
アプリを実行すると、次の動作が得られます。
管理者としてログインしてアプリケーションを実行すると、ファイルが削除されます。
ただし、標準ユーザーとしてログインすると、UAC プロンプトが表示されて管理者パスワードを入力しますが、削除を実行すると「ファイル アクセスが拒否されました」というエラーが表示されます。
誰かが私にこれを説明できますか?マニフェストの requiresAdministrator=True がプロセスを昇格させると思いました。しかし、まだシステムファイルを削除できません。
ありがとう。