我有一个没有任何资源(包括UAC清单)的应用程序。此应用程序使用CopyFile将自己安装到appdata/roaming文件夹中,并设置了自启动,以便在每次启动时自动启动。现在,每次启动电脑时,UAC对话框会弹出并表示该应用程序会更改计算机。如果应用程序位于appdata中,则图标上也会显示盾牌符号。如何删除对话框或图标上的盾牌?Windows是否会检测copyfile API并自动设置?感谢您的回答。
避免这种情况的最佳方法是添加应用程序清单:它明确向系统传达了这不是传统应用程序,也不应该应用安装检测逻辑(可能会出现误报)。
此外,您的应用程序应该拥有一个版本信息资源,其中包含文件的版本和描述。
如果您的应用程序没有清单,系统将使用启发式方法来检测它是否是安装程序。如果它认为应用程序是安装程序,则运行您的应用程序将需要提升权限,并且该应用程序将在其图标和可执行文件上显示盾牌。
安装程序检测技术摘自:
- 文件名包括关键字,如“install”、“setup”或“update”。
- 版本资源字段包含以下关键字:供应商、公司名称、产品名称、文件说明、原始文件名、内部名称和导出名称。