【问题标题】:Windows UAC DialogWindows UAC 对话框
【发布时间】:2012-10-11 06:59:56
【问题描述】:

我有一个没有资源的应用程序(根本没有 UAC 清单)。 此应用程序使用 CopyFile 将自身安装到 appdata/roaming 文件夹。它还设置了自动启动,因此每次启动时都会自动启动。现在每次启动 pc 时,都会弹出 UAC 对话框并说应用程序对 pc 进行了更改。如果它位于 appdata 中,它的图标上也会有盾牌标志。如何删除图标中的对话框/盾牌? Windows 是否检测到 copyfile API 并自动设置它?

感谢您的回答。

【问题讨论】:

  • exe 的名称不包括“setup”,对吧?我知道这会自动触发 UAC 提示。
  • @user141603:您指的是 UAC 的“安装程序检测”功能。 "setup" 只是它寻找的众多关键字之一,文件名只是它寻找关键字的众多地方之一。有关详细信息,请参阅MSDN
  • 令人印象深刻。我真的不知道 UAC 可以通过它的文件名触发。谢谢你:)
  • 这看起来很像stackoverflow.com/questions/533939/…的副本

标签: windows winapi uac


【解决方案1】:

避免它的最佳方法是添加应用程序清单:它明确向系统传达这不是遗留应用程序,并且不应该安装检测逻辑(可能有误报)应用。

此外,您的应用程序应该有一个 VersionInfo 资源,其中包含文件的版本和描述。

如果您的应用程序没有清单,系统会使用启发式方法来检测它是否是安装程序。如果它认为应用程序是安装程序,那么运行您的应用程序将需要提升,并且应用程序将在其图标和可执行文件上带有屏蔽。

摘自Installer detection technology

  • 文件名包含关键字,例如“安装”、“设置”或“更新”。
  • 版本控制资源字段包含以下关键字:供应商、公司名称、产品名称、文件描述、原始文件名、内部名称和导出名称。

【讨论】:

  • 就是这样。应用程序的名称实际上是更新!不知道 UAC 通过文件名触发。谢谢!
猜你喜欢
  • 2014-11-16
  • 2012-04-19
  • 2011-09-06
  • 2021-07-02
  • 1970-01-01
  • 2023-04-09
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
相关资源
最近更新 更多