【问题标题】:Is it a Microsoft issue?是微软的问题吗?
【发布时间】:2011-02-21 07:43:19
【问题描述】:

我有一个exe是VC6编译的,文件名是patch.exe,没有添加manifest,这样的话,exe文件需要管理员权限,虽然我把所有代码都去掉了,只保留一个空的main (),结果是一样的。但是,如果我将 EXE 从 patch.exe 更改为 a.exe,问题就消失了。

以下是我的测试结果。 1.EXE是VC6编译的 2.没有清单或清单中没有特定权限 3. exe名称包含“patch”子串,不区分大小写

这是微软的问题吗?为什么?

试过VC2008,不能重复。

【问题讨论】:

标签: windows visual-studio uac


【解决方案1】:

Vista 等的 UAC 功能确实使用可执行文件的文件名来猜测它是否需要升级的管理员权限。因此,即使用户不执行“以管理员身份运行.. ." 为它。

为什么VC2008版本不引起升级请求?我不知道。也许在某个地方嵌入了一个清单,明确或暗示它不需要它。

已经在 StackOverflow 上提出过类似的问题。

How to prevent Vista from requiring elevation on patch.exe?

【讨论】:

  • 根据您制作“VC2008”版本的方式,默认情况下您可能会获得一个 asInvoker 清单。这就是你想要做的。要么更改名称,要么添加一个清单,上面写着“不要从名称中猜测,我告诉你我不需要提升。” exe 中的代码无关紧要。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-24
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
  • 1970-01-01
相关资源
最近更新 更多