【问题标题】:How do I get rid of the UAC everytime I start my application每次启动应用程序时如何摆脱 UAC
【发布时间】:2013-11-01 14:01:21
【问题描述】:

我已经用 Verisign 签署了我的应用程序,将所有注册表变量存储在 HKCU 中,以便不请求管理员权限,但 UAC 命令仍然提示用户他/她是否希望对他/她的计算机进行以下更改。如何防止这种情况发生。

下面是VS生成的manifest文件

   <?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>

【问题讨论】:

  • 你能告诉我们你的应用清单的内容吗?
  • 我已经添加了在visual studio中生成的manifest文件。

标签: c++ visual-studio installation registry uac


【解决方案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

【讨论】:

  • 非常感谢您的详细解释!!!真的很感激。将立即进行更改并让您知道结果。干杯。
  • 嘿,我已经按照说明更改了清单文件,但仍然提示输入 UAC!我不知道这是什么原因造成的。此外,我可以确认由 Visual Studio 在发行版中创建的 .exe 不包含管理员权限,但是在使用 inno 设置生成安装文件后,即将注册表值写入 HKCU 并复制一些文件后,安装后看到的应用程序图标似乎包含管理员权限。
  • 我们可以让您的安装程序远离这个吗?让我们专注于编译器生成的可执行文件。在最后一条评论中,您描述了问题中未提及的一大堆步骤。请记住,我们是来回答您提出的问题,而不是解决该问题背后的问题。
  • 好的,我认为编译器生成的可执行文件在根据您之前的答案更改清单后所需的权限方面是可以的。现在我刚刚尝试将软件包安装在不同的目录上,例如C:\ 并且它在没有 UAC 的情况下启动,但读取我尚未调查的应用程序数据库时出错,因此我认为在 C:\program 文件中安装与 UAC 提示有关。
  • 那么,我回答你的问题了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-16
  • 2022-01-17
  • 2013-08-14
  • 1970-01-01
相关资源
最近更新 更多