2013-11-01 21 views
1

我已经使用Verisign签署了我的应用程序,将所有注册表变量存储在HKCU中,以便不要求管理权限,但UAC命令仍会提示用户是否他/她希望以下内容对他/她的计算机进行更改。我如何防止这种情况发生。我每次开始申请时如何摆脱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> 
+1

你能告诉我们你的应用程序清单的内容吗? –

+0

我已经添加了在visual studio中生成的清单文件。 – Federico

回答

1

这种行为的解释产生的清单文件被发现,因为我怀疑,在应用程序清单。您已指定要求的执行级别requireAdministrator。正是这种设置导致显示UAC对话框。将其更改为asInvoker以避免请求提升。

.... 
<requestedExecutionLevel level='asInvoker' uiAccess='false' /> 
.... 

在Visual Studio IDE中可能会有一个设置来控制它。我对此并不熟悉,但我希望这是您需要实现这一改变的方式。好,我看了这个。 IDE设置位于配置页的“清单文件”部分下的“链接器”节点中。相关文档可以在这里找到:http://msdn.microsoft.com/en-us/library/bb384691.aspx

阅读关于application manifests over on MSDN

+0

非常感谢您的详细解释!真的很感激它。将立即做出更改并让您知道结果。干杯。 – Federico

+0

嘿,我已经根据说明更改了清单文件,但仍然提示您输入UAC!我不知道是什么原因造成的。另外,我可以确认由Visual Studio在发行版中创建的.exe文件不包含管理权限,但是在使用inno安装程序生成安装文件后,即向HKCU写入注册表值并复制一些文件后,安装后看到的应用程序图标似乎会包含管理权限。 – Federico

+0

我们可否让您的安装程序不在此列。让我们专注于编译器生成的可执行文件。在最后的评论中,您描述了一大堆问题中未提及的步骤。请记住,我们在这里回答你提出的问题,而不是解决这个问题背后的问题。 –