最新の Windows 環境でのレジストリ変更の昇格の付与
Windows プログラミングの世界では、かつては HKEY_CLASSES_ROOT の下にあるレジストリ キーを変更するのは簡単な作業でした。ただし、Windows 7 の登場とユーザー アカウント制御 (UAC) の重視により、開発者は「要求されたレジストリ アクセスは許可されていません」というエラーに遭遇する可能性があります。
この制限は、ほとんどのアプリケーションがWindows 7 以降の標準ユーザー権限。 HKEY_CLASSES_ROOT の下にあるような保護されたレジストリ キーを変更するには、アプリケーションに管理者権限が必要です。
UAC サポート用のコードの拡張
調整ユーティリティに必要な昇格された権限を付与するには、次の解決策を実装する必要があります:
1.アプリケーション マニフェストを利用する:
アプリケーション ディレクトリに拡張子「.manifest」を持つマニフェスト ファイルを作成します。
2.マニフェストを構成します:
マニフェスト ファイル内で、次の XML 構造を定義します:
<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity version="1.0.0.0" name="MyApplication.app" /> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> </requestedPrivileges> </security> </trustInfo> </asmv1:assembly>
3.マニフェストをリンクします:
C コードで、プリプロセッサ ディレクティブ セクションに次の行を追加します:
#pragma comment(linker,"/manifestdependency:\"MyApplication.manifest\"")
これらの手順を実装することで、アプリケーションが必要とするシステムに指示します。レジストリの変更を実行するための管理者権限。アプリケーションが起動されると、Windows はユーザーに昇格を許可するよう自動的に要求し、調整ユーティリティが保護されたレジストリ キーにアクセスできるようにします。
以上が保護されたレジストリ キーを変更するための昇格権限を Windows アプリケーションに付与するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。