我有一个没有资源的应用程序(根本没有 UAC 清单)。此应用程序使用 CopyFile 将自身安装到 appdata/roaming 文件夹。它还设置了自动启动,因此每次启动时都会自动启动。现在每次启动 pc 时,都会弹出 UAC 对话框并说应用程序对 pc 进行了更改。如果它位于 appdata 中,它的图标上也会有盾牌标志。如何删除图标中的对话框/盾牌?Windows 是否检测到 copyfile API 并自动设置它?
感谢您的回答。
避免它的最好方法是添加应用程序清单:它明确地向系统传达这不是一个遗留应用程序,并且不应该应用任何安装检测逻辑(可能有误报)。
此外,您的应用程序应该有一个 VersionInfo 资源,其中包含文件的版本和描述。
如果您的应用程序没有清单,系统会使用启发式方法来检测它是否是安装程序。如果它认为应用程序是安装程序,那么运行您的应用程序将需要提升,并且该应用程序将在其图标和可执行文件上带有屏蔽。
安装程序检测技术摘录:
- 文件名包括诸如“安装”、“设置”或“更新”之类的关键字。
- 版本控制资源字段包含以下关键字:供应商、公司名称、产品名称、文件描述、原始文件名、内部名称和导出名称。