2010-09-30 65 views
3

启动我的可执行文件时,Windows会提示提升,如果不应该的话。如何确定应用程序提示抬高的原因

我怎么弄出来为什么 Windows在启动时提示我提升我的可执行文件?

注:

  • 没有清单资源(要求asAdministrator,或以其他方式)
  • 没有清单文件
  • 的了兼容性选项卡(对于所有用户和只是我)没有选中“以管理员身份运行”

我如何确定为什么我的应用程序提示提升?

+0

是否有任何需要管理访问的文件I/O操作? (在Windows/Program Files文件夹中),注册表? – Ruel 2010-09-30 15:16:51

+1

你的代码试图做的事情永远不会导致海拔。 – 2010-09-30 18:46:47

回答

3

在没有清单的情况下,通常的原因是名称启发式(例如,您的文件称为setup.exe)和组策略(在“此程序可能没有按预期运行”对话框后,您可能意外设置了此策略)

要防止它,只需使用asInvoker应用清单(嵌入或外部)。那么你将不再关心这些启发式,你不会提升。

我知道我评论过上面的内容,但我需要重复一遍:你的代码试图做的事情永远不会导致提升。决不。当你没有升高时,除非你升高,否则将无法工作的东西失败。它不会提升你。

+0

Damnest的事情是,我创建了一个外部'MyApp.exe.manifest'文件,声明'asInvoker',它仍然提示。然而,我重命名可执行文件,它不再这样做。我仍然希望找到某个地方的日志*为什么* Windows认为应用程序需要提升(显示'requireAdministrator',用户兼容性请求,所有用户兼容性请求,设置启发式检测和“其他”) – 2010-10-04 13:16:09

+0

可能是compat请求,关联与名称,以便更改名称打破了请求。如果他们超过舱单,我不会感到惊讶。你可以利用这一点来建立“啄食顺序” - 我没有看到它写在任何地方。 – 2010-10-04 13:45:38

相关问题