我正在尝试允许我的程序写入HKLM密钥。为了实现这一点,我尝试创建一个清单文件:
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<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>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
</application>
</compatibility>
</assembly>
但即使有了这个文件,我仍然有例外:
"System.UnauthorizedAccessException" in mscorlib.dll
Cannot write to the registry key.
我正在使用VS2015。我点击创建新元素然后选择清单文件。将名称设置为MyProgram.exe.manifest。然后在Project属性中选择适当的清单。最后我将Manifest文件中的执行级别更改为requireAdministrator并重建程序。
但是当我执行MyProgram.exe时,它永远不会显示UAC窗口,当我尝试写入HKLM时会抛出异常。所以我怀疑清单不能正常工作。
请指教。 谢谢!!
答案 0 :(得分:-1)
你可以这样做: