在現代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中文網其他相關文章!