0

背景: 我的 C++ 应用程序由 VS2008 开发,并使用 VS 安装项目为其创建安装程序。安装后,它将创建两个应用程序的快捷方式。一个在用户桌面,第二个在开始菜单中。应用程序(myApp.exe)安装到Program files目录。

问题:Run as Administrator如果我右键单击开始菜单中的图标,大多数图标都有一个选项。但是,如果我右键单击与我的应用程序相关的快捷方式。它没有显示Run as Administrator。如何解决这个问题?

编辑:但是如果我右键单击myApp.exe中的Program files,它会显示“以管理员身份运行”。

4

3 回答 3

0

在清单文件中有选项“requestedExecutionLevel”和“UIAccess”将管理它。

于 2013-04-26T04:27:39.243 回答
0

将您的嵌入式清单设置为需要管理员。在项目属性页面上:

在此处输入图像描述

...在(突出显示的)上UAC Execution Level,更改asInvokerrequireAdministrator。构建你的项目以嵌入新的清单,它应该准备好做它的事情了。

哦——我没想到在这里做,但在Configuration下拉列表中,您可能想要选择,而不是屏幕截图中选择All Configurations的(默认)配置。Active变得非常烦人——你认为你已经解决了问题,然后你改为“发布”,一堆东西突然坏了,你必须弄清楚你改变了什么,并将这些更改编辑到Release配置中也是。

于 2013-04-26T04:35:35.667 回答
0

经过这么多的测试和搜索,我找到了答案。所以在这里我提到它以供任何人使用。

  • Windows 仅Run as Administrator在上下文菜单中显示那些直接针对某个exe文件的快捷方式。
  • 如果您使用 VS 部署(设置)项目来创建带有桌面和开始菜单快捷方式的安装。那些不针对exe(Application.exe) 文件的快捷方式。
  • 而不是针对应用程序文件夹的快捷方式(MS office 2007 也相同)。这被称为 installation-on-demand and advertisement是更多细节。
  • 这将帮助您的应用程序修复文件丢失(请向 Google 寻求更多信息)。
  • 因此,如果您想将快捷方式直接定位到 exe 文件,我们必须禁用此功能。
  • 为此,您可以使用命令提示符或某些工具。这是怎么做的。

    1. 通常 Windows 安装程序具有一个exe和一个msi.
    2. 这些设置存储在msi生成的安装文件中。
    3. 因此,您必须更改文件并将条目添加DISABLEADVTSHORTCUTS=1到属性表。

使用命令提示符:

msiexec /i <path to your msi> DISABLEADVTSHORTCUTS=1

使用Orca工具:(还有很多其他工具)

  1. 从这里下载 Orca 工具并安装它。
  2. 右键单击您的*.msi文件,然后单击edit with orca
  3. 转到属性表并添加新条目DISABLEADVTSHORTCUTS,值为1,保存并关闭。
  4. 现在你完成了。
  5. 使用 setup.exe 文件安装并检查快捷方式的目标。这些直接针对exe应用程序文件夹中的文件。
  6. 现在,如果您右键单击快捷方式,则会Run as Administrator在上下文菜单中显示选项。

注意:这样做你会获得Run as Administrator但会削弱windows auto repair能力。

于 2013-04-26T09:04:34.607 回答