我已经使用Verisign签署了我的应用程序,将所有注册表变量存储在HKCU中,以便不要求管理员权限,但是UAC命令仍然提示用户他/她是否希望以下内容对他/她的计算机进行更改。我该如何防止这种情况发生。
下面显示了VS
生成的清单文件 <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*' />
</dependentAssembly>
</dependency>
</assembly>
答案 0 :(得分:1)
我怀疑,在应用程序清单中找到了对此行为的解释。您已指定请求的执行级别requireAdministrator
。正是该设置导致显示UAC对话框。将其更改为asInvoker
以避免请求提升。
....
<requestedExecutionLevel level='asInvoker' uiAccess='false' />
....
Visual Studio IDE中可能有一个设置来控制它。我对此并不熟悉,但我希望您能够采用这种方式实现这一变化。好的,我看了一下。 IDE设置位于配置页面的链接器节点中,在“清单文件”部分下。有关该文档的文档可在此处找到:http://msdn.microsoft.com/en-us/library/bb384691.aspx